2016-10-13 50 views
-1

文字列と文字列を別々に格納しようとしています - List<String>のすべての文字とList<Integer>のすべての文字NumberFormatExceptionが文字と文字列を文字列から区別する方法はありますか

を使用せずに

私の文字列は -

String s="asdjd7gd7fghdfg78895983745hkg98353j56li67hj595j595695g596496890"; 
+1

はい、あなたは 'replaceAll()'またはループで正規表現を使用して、各文字の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()); 

出力:

文字列:[、Sは、D、J、D、G、D、F、G、H、D、F 、G、H、K、G、J、L、I、H、 J、J、G]

整数:[7,7、7、8、8、9、5、9、8、3 、7、5、9、5、9、5、9、5、9、6、5、6、 4、9、6、8、9、0]

関連する問題