Ответ на удаление начального пробела прост: просто
return reverse.trim();
String.trim()
возвращает копию строки с пропущенными начальным и конечным пробелами (как скопировано из документации Javadoc).
Для вашей общей проблемы я составил этот пример:
String job = "This is a job interview question!";
StringBuilder sb = new StringBuilder(job);
String[] words = job.split(" ");
int i = 0;
for (String word : words) {
words[i] = (new StringBuilder(word)).reverse().toString();
i++;
}
System.out.println("job = " + job);
System.out.print("rev = ");
for (String word: words) {
sb.append(new StringBuilder(word).toString());
sb.append(" ");
}
String rev = sb.toString().trim();
System.out.println(rev);
, и получим результат:
job = This is a job interview question!
rev = sihT si a boj weivretni !noitseuq
Если вы хотите быть более инклюзивным из любыхсимвол пробела, например символ табуляции, разрыв строки, перевод формы, затем измените аргумент split()
на split("\\s")
, так как \s
- это класс символов регулярного выражения, который воплощает [\ t \ r \ n \ f].Обратите внимание, как вы должны экранировать символ обратной косой черты в вашем строковом представлении Java регулярного выражения (именно этого ожидает метод split).