백준 알고리즘 문제 10807을 풀면서 문자열을 정수 배열로 변환하는 방법을 사용했는데, 이 방법에 대한 좋은 글을 찾아 포스팅해보려고 한다
char 배열에서 내부적으로 지원되는 객체string.split()참고한 포스팅에서는 string.replaceAll() 메소드와 string.split() 메소드 두 가지 방법이 있다고 했다
하지만 첫 번째 방법은 같이 입력된 []를 지우기 위해 replaceAll() 메소드를 사용하는 것일 뿐 실질적으로 변환시킬 때는 split() 메소드를 사용했기 때문에 해당 방법만 포스팅할 것
string.split() 메소드는 문자열을 다양한 하위 문자열로 분할하는 데 사용됨Integer.parseInt() 메소드를 사용해 정수로 변환되고, 해당 정수 값이 int 배열에 저장됨// Java Program to Convert String to Integer Array
// Using string.split() method
// Importing input output and utility classes
import java.io.*;
public class GFG {
// Function for conversion
static int[] method(String str)
{
String[] splitArray = str.split(" ");
int[] array = new int[splitArray.length];
// parsing the String argument as a signed decimal
// integer object and storing that integer into the
// array
for (int i = 0; i < splitArray.length; i++) {
array[i] = Integer.parseInt(splitArray[i]);
}
return array;
}
// main method
public static void main(String[] args)
{
// Bufferedreader declaration
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
// string declaration
String str = "1 23 456 7890";
int i;
// declaring the variable & calling the method with
// passing string as an argument
int[] array = method(str);
// printing the string
System.out.print("\nString : " + str);
// printing the Integer array
System.out.print("\nInteger array : [");
for (i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
System.out.print("]");
}
}
O(n)O(n)Stream 요소를 int형으로 변환해 IntStream으로 리턴하는 mapToInt()를 사용String str = br.readLine();
String strs[] = str.split(" ");
int nums[] = Arrays.stream(strs).mapToInt(Integer::parseInt).toArray();
System.out.println(Arrays.toString(nums));
https://www.geeksforgeeks.org/java-program-to-convert-string-to-integer-array/