Как я мог получить три подстроки из одного, что-то вроде "Мне 50"? Я должен отменить его ("50 утра я"), но нужно только знать, как диапазоны (не допустимые диапазоны, такие как "от 3 до 5" или аналогичные слова, потому что слова могут отличаться). Спасибо.
ss1 = string.substring(0, index); // index = " ";
ss2 = string.substring(index+1, **?** );
ss3 = string.substring( **?** , string.length());
Образец кода:
String str = "I am 50";
String[] array = str.split("\\s+");
StringBuffer buffer = new StringBuffer();
for (int i = array.length - 1; i >= 0; i--) {
buffer.append(" ").append(array[i]);
}
String reverse = buffer.substring(1);
Я бы использовал функцию String#split(String)
здесь.
Что вы можете сделать, это вызвать string.split(" ");
и это разделит строку на независимые слова. Затем вы можете просто изменить массив.
String str = "I am 50";
StringBuilder builder = new StringBuilder(str.length);
String[] words = str.split(" ");
for(int i = words.length - 1; i >= 0; i--){
builder.append(words[i]);
builder.append(' ');
}
String result = builder.toString().trim();
Если вы не прочь использовать классы Apache ArrayUtils
и StringUtils
, то это самый короткий путь
String[] words = string.split("\\s");
ArrayUtils.reverse(words);
System.out.println(StringUtils.join(words," "));
вы можете использовать string.split(""), который возвращает вам массив строк - отдельные слова. Затем вы можете изменить массив и рассчитать диапазоны