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이 출력된다.