Java에서 문자열을 Int 배열로 변환
-
replaceAll()
메서드를 사용하여 문자열을 Int 배열로 변환 - Java 8 스트림 라이브러리를 사용하여 문자열을 Int 배열로 변환
- StringTokenizer 및 함수를 사용하여 문자열을 Int 배열로 변환
Java 언어에서는 문제 설명에 대해 생각할 수있는 몇 가지 접근 방식이있을 수 있습니다.
먼저 문제 설명을 두 부분으로 나누겠습니다.
- 간단한 문자열을 문자열 배열로 변환합니다.
- String 배열을 int 배열로 변환합니다.
다음은 위의 두 단계를 다이어그램으로 나타낸 것입니다.
replaceAll()
메서드를 사용하여 문자열을 Int 배열로 변환
regex
및replacement
값의 두 인수를 사용하는String
클래스의replaceAll()
메소드를 사용할 수 있습니다. 이 메소드는 주어진 정규식을 주어진 대체 값으로 대체합니다. 그리고 체인 함수의 끝에서split()
메소드가 사용됩니다. 이 메서드는 주어진 문자에 따라 문자열을 분할합니다.
값이 분할되어 String 배열로 수집 될 때Integer.parseInt()
함수를 사용해야합니다. parseInt()
메소드가NumberFormatException
을 발생 시키므로 가능한 예외를 포착하려면 명령문이 하나의try...catch
블록에 있어야합니다.
다음은 문자열을 int 배열로 변환하는 방법을 보여주는 샘플 프로그램입니다.
package stringToIntArray;
import java.util.Arrays;
public class ConvertStringToIntArray {
public static void main(String... args) {
String testString = "[1,2,356,678,3378]";
String[] separatedStrings = testString.replaceAll("\\[", "").replaceAll("]", "").split(",");
int[] intArray = new int[separatedStrings.length];
for (int i = 0; i < separatedStrings.length; i++) {
try {
intArray[i] = Integer.parseInt(separatedStrings[i]);
} catch (Exception e) {
System.out.println("Unable to parse string to int: " + e.getMessage());
}
}
System.out.println(Arrays.toString(intArray));
}
}
출력:
[1,2,356,678,3378]
testString
의 값이[1,2,356,678,3378,f]
인 경우 예외가 발생하며 출력은 다음과 같습니다.
Unable to parse string to int: For input string: "f"
[1, 2, 356, 678, 3378, 0]
Java 8 스트림 라이브러리를 사용하여 문자열을 Int 배열로 변환
아래 프로그램에서 먼저Arrays.stream()
함수를 사용했습니다. 여기에 스트림을 제공하기 위해 첫 번째 및 마지막 인덱스 매개 변수를 사용하는String
클래스의substring()
메소드를 사용했습니다. 반환 된 String split()
함수가 적용되어 구분 기호를 기반으로 주어진 문자열을 분할합니다.
스트림map()
함수가 적용됩니다. 이 함수는 모든 함수를 인수로 사용하고 스트림을 반환합니다. 앞뒤의 공백을 제거하는 String 클래스의trim()
함수를 제공했습니다. parseInt
는 수신 된 주어진 문자열을 int로 변환합니다. toArray()
는 변환 된 int 요소를 배열로 덤프합니다.
package stringToIntArray;
import java.util.Arrays;
public class StringToIntUsingJava
8Stream {
public static void main(String[] args) {
String str = "[1, 2, 3, 4, 5]";
int[] arr = Arrays.stream(str.substring(1, str.length() - 1).split(","))
.map(String::trim)
.mapToInt(Integer::parseInt)
.toArray();
System.out.println(Arrays.toString(arr));
}
}
출력:
[1, 2, 3, 4, 5]
StringTokenizer 및 함수를 사용하여 문자열을 Int 배열로 변환
생성자StringTokenizer()
를 사용하여 StringTokenizer 객체를 인스턴스화합니다. 생성자는 입력 문자열과 구분 기호를 사용하여 토큰 화 된 문자열을 형성합니다. 토큰 화 된 문자열에서 토큰으로 크기가있는 String 및 int 배열을 동시에 생성합니다.
countTokens()
메소드는 내부적으로 구분 기호를 건너 뛰는 토큰을 계산합니다. hasMoreTokens()
는 토크 나이저 문자열에 토큰이 있는지 확인합니다. nextToken()
은 문자열에서 다음 토큰을 검색합니다. 이 메소드는 문자열에 토큰이없는 경우NoSuchElementException
을 발생시킵니다.
문자열 토큰을 int로 변환하고 int 배열에서 수집하도록 반복합니다.
package stringToIntArray;
import java.util.StringTokenizer;
public class StringToIntUsingStringTokenizer {
public static void main(String[] args) {
String testString = "[1,2,3,4]";
StringTokenizer stk = new StringTokenizer(testString, "[,]");
String[] strings = new String[stk.countTokens()];
int[] integerArray = new int[stk.countTokens()];
int i = 0;
while (stk.hasMoreTokens()) {
strings[i] = stk.nextToken();
integerArray[i] = Integer.parseInt(strings[i]);
i++;
}
for (int j = 0; j < integerArray.length; j++)
System.out.println("number[" + j + "]=" + integerArray[j]);
}
}
출력:
number[0]=1
number[1]=2
number[2]=3
number[3]=4
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn관련 문장 - Java String
- Java 문자열을 바이트로 변환하는 방법
- Java에서 16 진 문자열의 바이트 배열을 변환하는 방법
- Java에서 문자열 대 문자열 배열 변환을 수행하는 방법
- Java에서 문자열에서 부분 문자열을 제거하는 방법
- Java에서 임의 문자열 생성
- Java의 스왑 방법