java를 사용하다보면 하나의 문자를 입력받고 출력해야 하는 경우가 많습니다. 일반적인 회원가입시 받는 전화번호나 주소 등이 될수가 있습니다. 이럴 때 java BufferedReader 기능을 사용하면 자바의 콘솔창에서 입력할 수가 있는데요.
이번 장에서는 사용자 입력, 입력값의 분리 방법을 배워보겠습니다. 일단 BufferedReader 기능을 소개하기 앞서 String 클래스에 대해서 알아보겠습니다.
String 클래스
위와 같이 String으로 선언된 test 뒤에 .을 찍게 되면 사용할 수 있는 메소드들이 나열되는데요.
String 변수 선언시 이런식으로 메소드를 사용할 수 있으며 다양한 기능을 수행할 수 있습니다.
예제 소스(문자 비교)
public class Test { public static void main(String[] args) { String a = "ok"; if(a.equals("ok")){ System.out.println("오케이~~~"); }else{ System.out.println("노~~~~"); } } }
결과
보통 비교연산자라 하면 ==을 써서 비교를 하지만 몇몇의 String의 경우 == 연산이 안되는 경우도 있기에 String 비교의 경우 equals를 쓰는것이 좋습니다.
이렇게 String 클래스에서 제공하는 equals함수를 사용하면 문자열을 비교할 수 있습니다.
전화번호 나누기 예제
전화번호를 나누기 위해서는 substring, indexOf 2가지의 메소드를 사용해야 하는데요.
예제를 통해 알아보겠습니다.
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Test { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("전화번호를 입력하세요"); String telnum = br.readLine(); String tel1 = telnum.substring(0, telnum.indexOf("-")); String temp1 = telnum.substring(telnum.indexOf("-")+1,telnum.length()); String tel2 = temp1.substring(0, temp1.indexOf("-")); String tel3 = temp1.substring(temp1.indexOf("-")+1,temp1.length()); System.out.println("tel1 : "+tel1); System.out.println("tel2 : "+tel2); System.out.println("tel3 : "+tel3); } }
결과
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String telnum = br.readLine();
–> 위의 구문은 사용자에게서 직접 키보드로 부터 값을 입력받는 객체로서 값을 입력받아 telnum에 저장시킨다는 구문입니다.
소스 설명
1. 사용자로부터 전화번호를 입력받아 telnum변수에 넣습니다.
2. substring(시작,끝) 메서드는 문자열을 자르는 변수로 시작에 0을 끝에 5을 넣으면 0번째부터 5번째까지의 문자열을 잘라서 반환하는 메서드입니다.
3. indexof() 메서드는 ()안에 문자열을 넣을 경우 그 문자열이 속해있는 위치를 반환해 줍니다.
4. 그리하여 처음은 0번째 부터 “-“까지 문자열을 잘라 tel1에 담고–>02
5. “-“이후의 문자열을 담기 위해 시작 위치를 “-“+1을 해주고 마지막은 .length(문자열의 길이를 리턴)으로 지정해 줍니다. –>1234-5678
6. temp1변수의 문자열을 가지고 0번째 부터 “-“까지 문자열을 잘라 tel2에 저장합니다.
7. 마지막은 “-“이후의 문자열에서 끝까지 담기 위해 시작 위치를 “-“+1을 해주고 마지막은 .length로 지정해 모든 숫자를 전부 가져옵니다.
이런식으로 java BufferedReader 기능을 이용하면 사용자의 값 입력을 받을 수 있고 substring, indexof 메소드를 사용하면 문자열을 나눌수 있게 됩니다.
답글 남기기