2016-10-13 2 views
-1

하나의 문자열에 문자와 int가 포함되어 있습니다.이 문자를 별도로 저장하려고합니다. List<String>의 모든 문자와 List<Integer>의 모든 문자는이 작업을 수행하는 다른 적절한 방법입니다. NumberFormatException이문자열과 문자를 구별 할 수있는 방법이 있습니까

를 사용하지 않고

내 문자열은 -

String s="asdjd7gd7fghdfg78895983745hkg98353j56li67hj595j595695g596496890"; 
+1

예,'replaceAll()'또는 루프와 함께 regex를 사용하고 각 문자의 ASCII 값을 확인할 수 있습니다 – TheLostMind

+0

나중에 참조 할 수 있도록 숫자가 _ 문자이므로 문자를 " 숫자 ". 숫자에서 글자를 분리하거나 숫자에서 글자를 분리 할 수 ​​있습니다. – ajb

답변

3

TheLostMind, 당신은 그 String에서 숫자와 숫자가 아닌 문자를 구분하는 몇 가지 정규식으로 replaceAll()을 이용할 수 말했듯이 :

String s="asdjd7gd7fghdfg78895983745hkg98353j56li67hj595j595695g596496890"; 
String digits = s.replaceAll("[a-z]", ""); 
String nonDigits = s.replaceAll("[0-9]", ""); 

거기에서 digitsnonDigits을 원하는대로 저장할 수 있습니다.

1

이것을 시도

String s = "asdjd7gd7fghdfg78895983745hkg98353j56li67hj595j595695g596496890"; 

List<String> str = new ArrayList<String>(); 
List<Integer> in = new ArrayList<Integer>(); 
for (int i = 0; i < s.length(); i++) { 
    String kek = String.valueOf(s.charAt(i)); 
    if (Character.isDigit(s.charAt(i))) { 
     in.add(Integer.parseInt(kek)); 
    } else { 
     str.add(kek); 
    } 
} 
Log.e("String", str.toString()); 
Log.e("Integer", in.toString()); 

출력 :

문자열 : [A, S, D, J, D, g, D, F, G, H, D, F [7, 7, 7, 8, 8, 9, 5, 9, 8, 3], [g, h, k, g, j, l, i, h] 5, 9, 5, 9, 5, 9, 5, 9, 5, 9, 5, 9, 5, 9, 5, 9, 5, 9, 4, 9, 6, 8, 9, 0]

관련 문제