일부 사용자 입력을 분할하려고합니다. 입력은 a1 b2 c3 d4 형식입니다. 각 입력 (예 : a1)에 대해 'a'와 '1'로 나누는 방법은 무엇입니까?공간이없는 Java 문자열 분할
저는 문자열 분할 기능에 익숙하지만 구분 기호로 무엇을 지정할 수 있습니까?
감사합니다. 문자열의 배열로 공간
일부 사용자 입력을 분할하려고합니다. 입력은 a1 b2 c3 d4 형식입니다. 각 입력 (예 : a1)에 대해 'a'와 '1'로 나누는 방법은 무엇입니까?공간이없는 Java 문자열 분할
저는 문자열 분할 기능에 익숙하지만 구분 기호로 무엇을 지정할 수 있습니까?
감사합니다. 문자열의 배열로 공간
문자열을 일반적으로 분할하려는 경우 (다른 답변 당 문자 수를 계산하지 않고) String.split()을 계속 사용할 수 있지만 regular expressions을 사용해야합니다. (참고 : 등 A1, A2, aaa333 같은 문자열이있을 때이 답변이 작동합니다)이 시점에서
String ALPHA = "\p{Alpha}";
String NUMERIC = "\d";
String test1 = "a1";
String test2 = "aa22";
ArrayList<String> alpha = new ArrayList();
ArrayList<String> numeric = new ArrayList();
alpha.add(test1.split(ALPHA));
numeric.add(test1.split(NUMERIC));
alpha.add(test2.split(ALPHA));
numeric.add(test2.split(NUMERIC));
을, 알파 배열은 문자열의 알파 부분이되고 숫자 배열이있을 것이다 숫자 부분. (참고 : 실제로 작동하는지 테스트하기 위해 컴파일하지 않았지만 기본 아이디어를 제공해야합니다.)
분할 후, 난 그냥 열로의 문자 반복 추천 할 것입니다 String.charAt(0)
및 String.charAt(1)
으로 개별 문자를 당깁니다.
for(int i = 0; i < str.length(); i += 3) {
char theLetter = str.charAt(i);
char theNumber = str.charAt(i + 1);
// Do something
}
편집 :
이([a-z]+)(\d+)
k11 l12 m13 등의 경우에는 작동하지 않습니다 ... – Kal
1로 생각했습니다. 문자/한 자리 조합. 그래도 될 수 있습니다. – Ryan
감사합니다. 1 자릿수의 1 자리 숫자 조합 일뿐입니다. – Triple777er
String a1 = "a1"
String firstLetterStr = a1.substring(0,1);
String secondLetterStr = a1.substirng(1,a1.length());
마찬가지로 사용할 수는 한 문자 또는 숫자보다 더 될 수 있다면, 정규 표현식을 사용 ,
012 당신이split(" ")
을 사용하여 개별 토큰으로 사용자 입력을 분할 한 후 3,516,
String c31 = "c31"
String firstLetterStr = c31.substring(0,1);
String secondLetterStr = c31.substirng(1,c31.length());
네, 가능하면 split("");
을 사용할 수 있으며, 사용 문자로 각 토큰을 분할 할 수 있습니다 (구분 기호로 빈 문자열을 사용) split("")
.
나중에 데이터를 사용하는 방법은 실제로 달라 지지만 split("")
또는 액세스 중 개별 문자로 나눌 수있는 다른 방법은 toCharArray()
입니다. 문자 배열로 문자열을 분할하는 것입니다 ...
+1 정규식 제안. –
"\ p {Alpha}"는 "잘못된 이스케이프 시퀀스"라는 오류 메시지를 표시합니다. – Triple777er
@ Triple777er - "\ p {Alpha}"대신 "[a-zA-Z]"를 사용해보십시오. – JasCav