[JAVA] String ๋ฌธ์์ด ๊ธธ์ด / ๋ฐฐ์ด ๊ธธ์ด / ๋ฌธ์ ์ ์๋ก ๋ณํ / Integer.pagseInt() / (int) String
๊ถ๊ธ์ฆ
String message = "12345";
String์ผ๋ก ์ด๋ฃจ์ด์ง ์ซ์๋ฅผ ์ด๋ป๊ฒ ๋ฐ ์ฝ๋์ฒ๋ผ ํ๋ ํ๋ ์๋ผ์ ๋ฐฐ์ด์ ๋ด์ ์ ์์๊น?
int[] arr = {1, 2, 3, 4, 5}
์ ๋ํ ๊ถ๊ธ์ฆ์ด ์์ด ์ ๋ฆฌ๊ธ์ ์์ฑํด๋ณด๊ฒ ๋์ต๋๋ค.
1. chatAt() ์ ์ด์ฉ
์ ์ฒด์ ์ธ ์ฝ๋
public class Main {
public static void main(String args[]) throws IOException{
String message = "12345";
int[] arr = new int[message.length()];
System.out.println("๋ฌธ์ 0์ด ์ซ์๋ก : " + (int)'0');
System.out.println("๋ฌธ์ 1์ด ์ซ์๋ก : " + (int)'1');
System.out.println("๋ฌธ์ 2์ด ์ซ์๋ก : " + (int)'2');
System.out.println("๋ฌธ์ 3์ด ์ซ์๋ก : " + (int)'3');
System.out.print("arr[] (0 ๋นผ๊ธฐ ์ ) : ");
for(int i=0; i<arr.length; i++) {
arr[i] = (int)message.charAt(i);
System.out.print(arr[i] + "\t");
}
System.out.print("\narr[] (0 ๋นผ๊ณ ๋ ํ) : ");
for(int i=0; i<arr.length; i++) {
arr[i] = (int)message.charAt(i) - (int)'0';
System.out.print(arr[i] + "\t");
}
}
}
์์ธ ์ค๋ช
String message = "12345";
int[] arr = new int[message.length()];
message.length() ๋ฅผ ์ด์ฉํ์ฌ int ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ์ก์์ค๋ค.
for(int i=0; i<arr.length; i++) {
arr[i] = (int)message.charAt(i);
System.out.print(arr[i] + "\t"); // [49, 50, 51, 52, 53]
}
for๋ฌธ์ ์ด์ฉํ์ฌ message.charAt(i)๋ฅผ ๊ตฌํด์ค ํ intํ์ผ๋ก ๋ณํํด์ค๋ค.
→ arr[i] = (int)message.charAt(i);
์ด๋ผ!! ๊ทผ๋ฐ ๋ฐํ ๊ฐ์ด ๋ด๊ฐ ์ํ๋ [1, 2, 3, 4, 5] ๊ฐ ์๋ [49, 50, 51, 52, 53] ์ด ๋์ค๊ฒ ๋๋ค.
ASCII CODE ๋๋ฌธ์
charAt์ ์์คํค์ฝ๋๋ก ๋ณํํด์ฃผ๊ธฐ ๋๋ฌธ์ ์ํ๋ ์ซ์์ ๋ค๋ฅด๊ฒ ๋์ค๋ ๊ฒ์ด๋ค.
charAt์ผ๋ก ์๋ฅด๊ฒ ๋๋ฉด String์ด ์๋ char ํ์ ์ด ๋๊ธฐ ๋๋ฌธ์ ์์คํค์ฝ๋๋ก ๋ณํ์ด ๋๋ค.
(charํ์ intํ์ผ๋ก ๋ณํ์ ascii code๋ก ๋ณํ๋จ)

์๋ฅผ ์ ์ดํด๋ณด๋ฉด 0์ 48 / 1์ 49 ... ๊ณผ ๊ฐ์ด ํ์๋๋ค.
๊ทธ๋ฌ๋ฉด..?
๊ทธ๋์ 0๋งํผ์ ํฌ๊ธฐ๋ฅผ ๋นผ์ค๋ค๋ฉด 0์ 0 / 1์ 1 ... ๊ณผ ๊ฐ์ด ํ์๋ ์ ์์ง ์์๊น?
for(int i=0; i<arr.length; i++) {
arr[i] = (int)message.charAt(i) - (int)'0';
System.out.print(arr[i] + "\t"); // [1, 2, 3, 4, 5]
}
์ด๋ ๊ฒ ํ๋ ํ๋๋ฅผ charAt์ผ๋ก ์ชผ๊ฐ์ค ๋ค์ int ํ์ผ๋ก ๋ณํํด์ int๋ฐฐ์ด์ ๋ฃ์ ์ ์๋ค.
๊ทธ๋ ๊ฒ ๋๋ฉด ์ํ๋ [1, 2, 3, 4, 5] ๊ฐ์ด ๋์ค๋ ๊ฑธ ํ์ธ ํ ์ ์๋ค
2. split()์ผ๋ก ๊ตฌํ๊ธฐ
์ ์ฒด์ ์ธ ์ฝ๋
import java.io.IOException;
public class Main {
public static void main(String args[]) throws IOException{
String message = "12345";
String[] messageArr = message.split("");
int[] arr = new int[messageArr.length];
for(int i=0; i<arr.length;i++) {
arr[i] = Integer.parseInt(messageArr[i]);
System.out.print(arr[i] + "\t");
}
}
}
์ธ๋ถ ์ค๋ช
String[] messageArr = message.split("");
// ["1", "2," "3", "4", "5"]
split์ ์ด์ฉํ์ฌ ๋ฌธ์๋ฅผ ์๋ฅผ ์ ์๋ค.
message.split("") → ํ ๊ธ์์ฉ ์๋ฅด๊ธฐ
message.split(" ") → ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ์๋ฅด๊ธฐ
๋ฑ๋ฑ split์ ์ด์ฉํ์ฌ ์ํ๋ ๋ฐฉ์์ผ๋ก ๋ฌธ์๋ฅผ ์๋ฅผ ์ ์๋ค.
๊ทธ๋ ๊ฒ ["1", "2", "3", "4", "5"] ์ธ String ๋ฐฐ์ด์ด ๋ง๋ค์ด์ก๋ค.
int[] arr = new int[messageArr.length];
for(int i=0; i<arr.length;i++) {
arr[i] = Integer.parseInt(messageArr[i]);
System.out.print(arr[i] + "\t"); // [1, 2, 3, 4, 5]
}
String ๋ฐฐ์ด์ ํฌ๊ธฐ๋งํผ(messageArr.length) int ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์ง์ ํด์ค๋ค.
Integer.parseInt() ๋ String์ int๋ก ๋ฐ๊พธ์ด์ฃผ๋ ์ญํ ์ ํ๋ค.
์๋ฅผ ์ด์ฉํ์ฌ int ๋ฐฐ์ด์ ๊ฐ์ ๋ฃ์ ์ ์๋ค!
String ๋ฐฐ์ด / String charAt() ์ฌ์ฉ์ ํท๊ฐ๋ฆฌ๋ ๋ถ๋ถ
๋ฌธ์์ด ๊ธธ์ด ๊ตฌํ๊ธฐ
String message = "12345";
String[] messageArr = message.split("");
int[] arr = new int[message.length()]; // 5
int[] arr2 = new int[messageArr.length]; // 5
์ผ๋ฐ String์ ๊ธธ์ด๋ฅผ ๊ตฌํ๊ณ ์ ํ๋ค๋ฉด
messageArr.length()
๋ฐฐ์ด String์ ๊ธธ์ด๋ฅผ ๊ตฌํ๊ณ ์ ํ๋ค๋ฉด
messageArr.length
๋ก ๊ตฌํด์ผ ํ๋ค.
์์งํ ์ง๊ธ์ ๋ถ๋ช ํ ์๊ฒ ์ง๋ง ๋ค๋ฅธ ์ธ์ด๋ฅผ ๊ณต๋ถํ๋ค ๋ค์ JAVA๋ก ์ค๊ฒ ๋๋ฉด ๊ดํธ'()' ๋๋ฌธ์ ์ค๋ฅ๋ฅผ ๋ณผ ์๋ ์๋ค.
Char์ (int) & String์ Integer.ParseInt()
String message = "12345";
String[] messageArr = message.split("");
int[] arr = new int[messageArr.length];
int[] arr2 = new int[message.length()];
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(messageArr[i]);
// arr[i] = (int)messageArr[i]; → ์๋ฌ
System.out.print(arr[i] + "\t");
}
System.out.print("\n");
for (int i = 0; i < arr2.length; i++) {
arr2[i] = (int) message.charAt(i) - (int)'0';
// arr2[i] = Integer.parseInt(message.charAt(i)); → ์๋ฌ
System.out.print(arr2[i] + "\t");
}
๊ทธ๋ฆฌ๊ณ
char์ (int) ๋ก ๋ณํํ ์ ์๊ณ
String์ Integer.parseInt() ๋ก ๋ณํํ ์ ์๋ค. (Integer.valueOf()๋ ๋จ.)
์๋ก ๋ฐ๊ฟ์ ์ด๋ค๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
String ๋ฐฐ์ด๋ก (int) ๋ถ๊ฐ๋ฅ!
char๋ก Integer.parseInt() ๋ถ๊ฐ๋ฅ!!
ํ์ง๋ง charAtํ๊ธฐ ์ message๋ String์ด๊ธฐ ๋๋ฌธ์
Integer.parseInt(message)๋ ๊ฐ๋ฅํ๋ค!