Я создаю программу для получения различных частей строки, например «10 триллионов 837 миллиардов 45 миллионов 56739». Я задал этот вопрос здесь .Но иногда моя строка выглядит как «10 триллионов 837 миллиардов 45 миллионов 56 739».Я хочу удалить пробелы между 6 и 7 в "56 739".
Я знаю, чтобы удалить пробел, но не знаю, как указать, между какими символами будет пробел для удаления
Это мой код
String input = "10 trillion 837 billion 45 million 56 739";
String pattern = "\\s\\d"; // this will match space and number thus will give you start of each number.
ArrayList<Integer> inds = new ArrayList<Integer>();
ArrayList<String> strs = new ArrayList<String>();
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(input);
while (m.find()) {
inds.add(m.start()); //start will return starting index.
}
//iterate over start indexes and each entry in inds array list will be the end index of substring.
//start index will be 0 and for subsequent iterations it will be end index + 1th position.
int indx = 0;
for(int i=0; i <= inds.size(); i++) {
if(i < inds.size()) {
strs.add(input.substring(indx, inds.get(i)));
indx = inds.get(i)+1;
} else {
strs.add(input.substring(indx, input.length()));
}
}
for(int i =0; i < strs.size(); i++) {
Toast.makeText(getApplicationContext(),strs.get(i)+"",Toast.LENGTH_LONG).show();
}
Я пыталсядобавить оператор replaceAll следующим образом input = input.replaceAll("\\d\\s\\d","\\d\\d");
Но это не сработало