#java #android
#java #Android
Вопрос:
У меня есть одна строка, содержащая символы и int, я пытаюсь сохранить ее отдельно, например, — all character in List<String>
и all digits List<Integer>
любым другим правильным способом сделать это без использования NumberFormatException
Моя строка-
String s="asdjd7gd7fghdfg78895983745hkg98353j56li67hj595j595695g596496890";
Комментарии:
1. Да, вы можете использовать регулярное выражение с
replaceAll()
или цикл и проверять значение ASCII каждого символа2. Для дальнейшего использования цифра — это символ, поэтому вы действительно не можете отделить «символы» от «цифр». Вы можете отделять буквы от цифр или не цифры от цифр.
Ответ №1:
Как сказал TheLostMind, вы можете использовать replaceAll()
с некоторым регулярным выражением для отделения цифр и нецифровых символов от этого String
:
String s="asdjd7gd7fghdfg78895983745hkg98353j56li67hj595j595695g596496890";
String digits = s.replaceAll("[a-z]", "");
String nonDigits = s.replaceAll("[0-9]", "");
Оттуда довольно просто хранить digits
и nonDigits
любым удобным для вас способом.
Ответ №2:
Попробуйте это,
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, g, h, k, g, j, l, i, h, j, j, g]
Целое число: [7, 7, 7, 8, 8, 9, 5, 9, 8, 3, 7, 4, 5, 9, 8, 3, 5, 3, 5, 6, 6, 7, 5, 9, 5, 5, 9, 5, 6, 9, 5, 5, 9, 6, 4, 9, 6, 8, 9, 0]