public class Main {
public static void main(String[] args) {
String s = "I love java programming.";
String ss[] = s.split(" ");
for (int i = ss.length - 1; i >= 0; i--) {
System.out.print(ss[i] + " ");
}
}
}
输出:-
programming. java love I
问题是,传递给方法split
的过滤器仅检测到单个空格。
这可以通过传递正确的正则表达式来检测multiple spaces
和dots
和句子的结尾来轻松解决。
看看下面的实现:
public class Main {
public static void main(String[] args) {
String s = "I love java programming.";
String ss[] = s.split("[\\.| ]+");
for (int i = ss.length - 1; i >= 0; i--) {
System.out.print(ss[i] + " ");
}
}
}
PS:如果点对您不重要,则可以使用“ [] +”。
import java.util.Arrays;
class Main {
public static void main(String ... args) {
var s = "I love java programming";
var r = new StringBuilder();
var parts = s.split("\\s +");
Arrays.asList(parts).forEach(r::append);
System.out.println(r.reverse().toString());
}
}
输出:gnimmargorp avajevol I