자바/자바 코드 예제 만들기

자바 기초 예제문제 4. 입력한 문자열 비교해서 비교 결과 출력하기

Tomitom 2022. 10. 28. 17:34
반응형

 

 

 

바로 직전에 Scanner 입력 콘솔에 대해서 배웠으니, 그것을 활용한 예제를 하나만 작성해보겠습니다. 

 

https://blue-dot.tistory.com/62?category=975496 

 

자바 기초 공부 일지 19. 콘솔 입력(Scanner 클래스)

이전에 파이썬에서는 변수에 입력을 할 때 입력 콘솔로 input() 을 사용했습니다. https://blue-dot.tistory.com/9 파이썬 공부일지 7. 변수와 입력! 변수는 변할 수 있는 모든 자료를 의미합니다. 모든 자료

blue-dot.tistory.com

 

고정된 문자열의 값을 정해놓고, 내가 입력으로 받은 문자열이 같은지 다른지를 비교하고 

그 비교 결과가 같으면 '같다' 아니면 '다르다'라고 출력하는 코드를 작성해볼게요. 


우선 스캐너로 입력을 받은 후에 그 값이 지정된 값과 일치한지 문자열의 비교를 해야합니다. 

== 의 등가연산 비교 연산자는 같은 메모리에 있는 것인지를 확인하는 것이므로 

다른 equals() 메소드를 사용하여 문자열의 값이 동일한지를 확인해야 합니다. 

해당 메소드는 여기서 복습.. 

https://blue-dot.tistory.com/60?category=975496 

 

자바 기초 공부 일지 17. String 클래스의 메소드, .concat(), equals, compareTo, compareToIgnoreCase, valueOf 함수

● 문자열 연결시키기 1. concat 함수 문자열을 연결 시킬 때 .concat 함수가 있습니다. 기존에는 + 연산자로 문자열을 합쳤었지만, concat 은 + 와 동작하는 방식이 다릅니다. + 는 정수, 실수, 문자열을

blue-dot.tistory.com

 

 

package day15;

import java.util.Scanner;

/*
 * 정해진 문자열과 내가 입력한 문자열이 같은지 비교해보자
 * 비교 결과가 같으면 '같다' 다르면 '다르다' 라고 출력하기. 
 */

public class Quiz01 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String word = "스타벅스";		// 제가 고정시켜 놓은 값은 스타벅스 입니다. 
		// 왜냐하면 스타벅스 텀블러를 선물 받아서요... 
		
		 System.out.print("단어를 입력해봐 : ");	// 이것은 입력 콘솔 직전에 출력할 메세지입니다. 
	        String input = sc.next();		// 이 부분은 하단의 설명영역을 참고해주세요! 
			// next() 와 nextLine() 은 차이가 있습니다! 

	        System.out.println(input); // 입력한 값을 출력해봅니다. 
        
        
		if(word.equals(input)){		// 만약 고정시켜놓은 word의 값이 input 의 값과 같다면 
			System.out.println(		// 맞아를 출력할 수 있게 만든 조건문 메소드이고 
					"맞아.");}
		else {	
			System.out.println("아냐.");} 	// 아니라면 아니라는 문자열을 출력하게 했습니다. 
		
	}
	
	}
 
 

sc.next() 와 sc.nextLine() 은 같은 문자열을 받는다는 점에서는 동일하지만 역할이 다릅니다. 

nextLine() 은 입력창에서 한 줄의 단위, 엔터키를 입력하기 전까지를 모두 문자열로 받습니다. 

공백과 탭 등도 문자열 하나로 받아요. 

하지만 next() 는 공백' ' , 탭 '\t\ , 줄바꿈 '\n' 등이 있으면 구분이 됩니다. 

 

예를 들어 입력창에 

 

>>> 오늘 나의 하루 

 

를 입력을 할 경우에 

 

nextLine()의 경우 "오늘 나의 하루" 를 그대로 문자열로 반환하는 반면, 

next() 의 경우 첫 번째 출력에서는 "오늘" 을 반환하고  

next() 를 다시 한 번 사용하면 두 번째 출력에서 "나의" 를 반환합니다. 

 

이 부분이 가장 큰 차이점입니다. 

 

 

 

 


 

그럼 한 가지 더 추가해서 반복문을 사용해 입력 값을 확인해서 일치할 때까지 유저가 입력할 수 있도록 코딩해볼게요. 

예를 들어 이름을 비비로 입력을 했을 때, 그 이름이 마음에 들지 않을 때 다시 입력할 수 있도록 합니다. 

while 과 break, if, Scanner 를 이용하면 되는 아주 간단한 초보 코드예요. 

 

package day20;
import java.util.*;

public class Test03 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		while(true) {
		
			System.out.println("당신의 이름은 무엇입니까? : ");
		
			String name = sc.next();
		
			System.out.println("당신의 이름은 "+ name + "이 맞습니까?" );
			System.out.println("1. 네 맞습니다.\n2. 아닙니다." );

			int yesorno = sc.nextInt(); 
		
			if(yesorno == 1) {
				System.out.println(name + " 님 좋은 하루 되시길 바랍니다." );
				break;}
			
			else 
				System.out.println("다시 입력해주세요.");
			
		}
	}
}
반응형