-4

我在一次采访中被问到这个问题。

如何在java中反转字符串中的单词?示例: String[] s ="Cat sat on sofa" 将变成 s ="sofa on sat cat" 修改相同的 s

我说 :

公共字符串反向(String[] s){

    String reverse = "";
    for(int i = (s.length -1); i>=0; i--)
    {
    reverse = reverse + s[i] + " ";

    }
    return reverse;
    }

面试官进一步说我不应该使用任何字符串变量,例如 string reverse = ""; 我需要修改相同的输入字符串 [] s = {坐在沙发上的猫}。

4

3 回答 3

0

您根本无法修改字符串对象,因为它是不可变的。如果您想做就地反转单词之类的操作,最好使用 char 数组。

于 2013-02-17T21:17:05.230 回答
0
public void reverse(String[] s) {  
     if(s == null || s.length <= 1) {  
         return;  
     }  
     String temp = null;
     for(int i = s.length(), j = 0; i > j; i--,j++){  
          temp = result[j];  
          result[j] = result[i];  
          result[i] = temp;    
     }  

}
于 2013-02-17T21:17:15.437 回答
0

这是我为您提供的链接中的代码。看看这个链接有多种方法可以做到这一点。尽管记住字符串是不可变的,除非您强制转换或使用 char 等,否则您无法真正做到这一点。

public String reverse(String s) {
    String reverseStringVariable = "";
    for (int i = s.length() - 1; i != -1; i--) {
        reverseStringVariable += s.charAt(i);
    }
    return reverseStringVariable;
}

http://www.brilliantsheep.com/3-ways-to-reverse-a-string-in-java/

于 2013-02-17T21:16:57.250 回答