1. 문자열 결합
String str1 = "1234";
String str2 = "5678";
System.out.println(str1+str2); //의 결과는 12345678
1234와 5678은 문자형이기떄문에 덧셈을 할 수 없고, str1+str2는 문자열을 이어주는 역할을 할 뿐이다.
문자열과 숫자를 더하면 어떤 결과가 나올까?
int n = 123;
String str = "456";
System.out.println(n+str); //123456
피연산자 중에 어느 한쪽이 String 이면 나머지를 String으로 변환한 다음 두 문자열이 결합된다.
문자열 + 모든타입 = 문자열
2. ""을 이용한 숫자->문자열 변환
System.out.println(""+7+7); //77
System.out.println(7+7+""); //14
숫자 연산에 빈문자열 ""를 더해주면 문자열로 바꿀 수있다.
""가 먼저 나오는 경우에는 문자열로 된 뒤에 +가되므로 문자열이 이어진 77이 나온다.
밑의 명령은 숫자 덧셈이 먼저기 때문에 14가 된 뒤에 문자열이 되어 출력된다.
3. 문자열-> 숫자 변환 : parseInt
Integer.parseInt(String s) : 숫자형의 문자열을 10진수의 정수형으로 변환
Integer.parseInt(String s, int radix) : 10진수가 아닌 다른 진수값으로 변환하고 싶을 때 radix 값을 넣어준다.
Integer.parseInt("1234");
Integer.parseInt("1234",10);
Integer.parseInt("1234") 과 Integer.parseInt("1234",10)의 결과는 동일하게 숫자 1234를 나타낸다.
String 타입이 들어가야할 자리에는 그대로 숫자로 변환될 수 있는 형태만 들어가야한다.
예를들어 123a 처럼 문자가 들어가있는 경우는 숫자로 변환할수없다.
int n1 = Integer.parseInt(str1);
int n2 = Integer.parseInt(str2);
System.out.println(n1+n2); //숫자의 합이 결과로 나옴
Integer.parseInt를 통해서 문자열을 숫자로 변경시켜주고 int 변수에 저장 하였다.
숫자로 변환된 1234와 5678은 덧셈이 가능하다.
4. Parse ...
System.out.println(Integer.parseInt("3.1415")); //error!!
3.1415의 문자열을 parseInt 타입으로 변환시키려고 하면 NumberFormatException 발생한다.
double 타입의 문자열을 int 타입으로 바로 바꿔줄 수는 없기 때문이다.
이 경우에는, Double.parseDouble()를 이용해야 한다.
Double.parseDouble("3.1415");
정상적으로 Double 타입으로 변환되었다.
Double 타입으로 변환된 이후에는 당연히 숫자 계산을 할 수 있다.
정수형 타입(int)의 숫자뿐만 아니라 숫자와 관련된 문자열 타입은 모두 변환가능하다.
Byte.parseByte();
Short.parseShort();
Integer.parseInt();
Long.parseLong();
Float.parseFloat();
Double.parseDouble();
명령어의 이름만으로도 문자열의 숫자가 어떤 타입의 숫자로 변환되는지 파악할 수 있다.
숫자 타입을 잘 파악하고, 명령어를 사용하도록 해야 한다.
5. 문자열을 문자로 변환 charAt
문자열의 숫자를 문자인 숫자로 변환하기 위해서는 charAt을 이용한다.
charAt()은 String으로 저장된 문자열 중에 한글자만 선택해서 char 문자 타입으로 변환해준다.
String str = "안녕하세요";
system.out.print(str.charAt(0)); //안
system.out.print(str.charAt(1)); //녕
system.out.print(str.charAt(2)); //하
system.out.print(str.charAt(3)); //세
system.out.print(str.charAt(4)); //요
charAt() 괄호안의 숫자는 몇번째 문자를 가져올지에 대한 index값이다.
"3".charAt(0)='3'
"3" 문자열을 '3' 문자로 변환하였다.
5. 문자와 숫자간의 변환 '0'
문자열이 아닌 '문자'와 숫자간의 변환은 문자 '0'을 더하고 빼면 된다.
3 + '0' = '3'
'3' - '0' = 3
아래 예시로 내용을 확인 할 수 있다.
String str = "3";
System.out.println(str.charAt(0) - '0'); //3
//문자열 "3"을 '3'으로 바꾼뒤 '0'을 빼서 숫자로 변환하였다.
System.out.println('3'-'0'+ 1); //4
//문자'3'에서 '0'을 빼서 숫자3이 되었고 연산 후 4가 된다.
System.out.println("3"+1); //31
문자열과 숫자를 + 하면 숫자가 문자열로 자동변환되어 문자열"3"과 "1"이 이어진 31이 나온다.
System.out.println( 3+'0'); //51
//문자'0'은 숫자로 48이다. 그래서 더한 값인 51이 나온다.
System.out.println((char)(3+'0')); //3 (문자)
//위 결과 숫자 51을 (char)으로 문자로 형변환 해주었다. 숫자 51은 문자 '3'이므로 3이 출력된다.
'Language > JAVA' 카테고리의 다른 글
자바 : EOF (End of File) 처리하기 (0) | 2022.05.31 |
---|---|
자바 : 상수 / 리터럴(literal) / 리터럴 타입 (0) | 2022.05.20 |
자바 : 문자열 전부 대문자 or 소문자로 변환 (toLowerCase , toUpperCase) (0) | 2022.05.20 |
자바 : 객체지향 프로그래밍, 객체지향언어 / 클래스, 인스턴스, 객체, 메서드 (0) | 2022.05.19 |
자바 (Java Programming Language) (0) | 2022.05.11 |