使用Java';sstringbuilder
我用Java开发了一个小项目 我想把线倒过来。 如果我输入“我是一个女孩”,则 我已经尝试使用StringBuilder了。 我还使用StringBuffer语法编写它。。。 但是我失败了。。。 这不是我的愿望 愿望 带打印的My->“我是一个lrig” “我是一个女孩”->“我是一个女孩”相反 我怎么办 请帮帮我谢谢~使用Java';sstringbuilder,java,string,reverse,stringbuilder,stringbuffer,Java,String,Reverse,Stringbuilder,Stringbuffer,我用Java开发了一个小项目 我想把线倒过来。 如果我输入“我是一个女孩”,则 我已经尝试使用StringBuilder了。 我还使用StringBuffer语法编写它。。。 但是我失败了。。。 这不是我的愿望 愿望 带打印的My->“我是一个lrig” “我是一个女孩”->“我是一个女孩”相反 我怎么办 请帮帮我谢谢~ public String reverse() { String[] words = str.split("\\s"); Stri
public String reverse() {
String[] words = str.split("\\s");
StringTokenizer stringTokenizer = new StringTokenizer(str, " ");
for (String string : words) {
System.out.print(string);
}
String a = Arrays.toString(words);
StringBuilder builder = new StringBuilder(a);
System.out.println(words[0]);
for (String st : words){
System.out.print(st);
}
return "";
}
执行此操作的Java 8代码:
public static void main(String[] args) {
String str = "I am a girl";
StringBuilder sb = new StringBuilder();
// split() returns an array of Strings, for each string, append it to a StringBuilder by adding a space.
Arrays.asList(str.split("\\s+")).stream().forEach(s -> {
sb.append(new StringBuilder(s).reverse() + " ");
});
String reversed = sb.toString().trim(); // remove trailing space
System.out.println(reversed);
}
O/p:
如果您不想使用
lambda
,也可以尝试此解决方案
String str = "I am a girl";
String finalString = "";
String s[] = str.split(" ");
for (String st : s) {
finalString += new StringBuilder(st).reverse().append(" ").toString();
}
System.out.println(finalString.trim());
}
OP不希望整个字符串被反转,她希望每个标记(由空格分隔)都被反转。StringBuilder中已经有一个reverse()方法@한송송이 - 它被称为lambda表达式。您可以阅读有关它们的信息:)
String str = "I am a girl";
String finalString = "";
String s[] = str.split(" ");
for (String st : s) {
finalString += new StringBuilder(st).reverse().append(" ").toString();
}
System.out.println(finalString.trim());
}