Java 字符串的字反转
我想反转字符串中的单词。我试着这样实现它:Java 字符串的字反转,java,string,Java,String,我想反转字符串中的单词。我试着这样实现它: public String reverseWords(String str) { String reverse = ""; String[] arr = str.split(" "); for (int i = arr.length; i < 0; i++) { reverse+=arr[i]; } return reverse; } publicstringreversee
public String reverseWords(String str) {
String reverse = "";
String[] arr = str.split(" ");
for (int i = arr.length; i < 0; i++) {
reverse+=arr[i];
}
return reverse;
}
publicstringreverseewords(stringstr){
字符串反向=”;
字符串[]arr=str.split(“”);
对于(int i=arr.length;i<0;i++){
反向+=arr[i];
}
反向返回;
}
然而,这并没有给我任何回报?有什么建议我做错了什么吗?您必须使循环向后迭代。使用
--
,您不需要从0到长度
,而是从length
到1
。这是手动换向功能的主要逻辑
试试这个:
public static String reverseWords(String str) {
StringBuilder sb = new StringBuilder(str.length() + 1);
String[] words = str.split(" ");
for (int i = words.length - 1; i >= 0; i--) {
sb.append(words[i]).append(' ');
}
sb.setLength(sb.length() - 1); // Strip trailing space
return sb.toString();
}
你有:
for(int i=arr.length;i<0;i++){
如果是长度,我将始终大于或等于0。试试这个:
对于(int i=arr.length;i>0;i--){
尝试i=0
到arr.length
或i--
和i>=0
或者更详细地说:
你想要
for (int i=arr.length-1 ; i>=0 ;i--)
如果要使用循环 第1版:
public String reverseWords(String str) {
String reverse = "";
for (int i = str.length()-1; i >= 0; i--) {
reverse+=str.charAt(i);
}
return reverse;
}
第2版:
public String reverseWords(String str) {
StringBuilder sb = new StringBuilder(str.length()+1);
for (int i = str.length()-1; i >= 0; i--) {
sb.append(str.charAt(i));
}
return sb.toString();
}
如果字符串长度很大,而且如果您处于多线程环境中,建议使用StringBuffer而不是StringBuilder
public String reverseWords(String str) {
return new StringBuffer(str).reverse().toString();
}
我给出了在java中使用charArray反转字符串ie的另一个选项。 1.使用函数将所有字符串复制到char数组
2.只需按相反顺序打印字符。您从最大的索引开始,您希望它是负数(而且永远不会是负数),更不用说您正在增加索引。我是否需要添加更多的索引来计算它?