2013-02-17 28 views
-4

我在一次採訪中被問到了這個問題。在相同的String []中反轉單詞?

如何在java中反轉字符串中的單詞?實施例:字符串[] S = 「貓坐在沙發上」 將變成爲s = 「坐在沙發上貓」 修改相同的S

我說:

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

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

    } 
    return reverse; 
    } 

面試官進一步說我不假設使用任何字符串變量例如string reverse =「」;我需要修改相同的輸入String [] s = {貓坐在沙發上}。

+0

這不是一個數組,而是一個字符串。無論如何,你有什麼嘗試? – 2013-02-17 21:14:09

+0

我不會說它是重複的,OP想要在沒有任何幫助對象的情況下就地反轉字符串。而這在Java中是不可能的,沒有他不想做的一些技巧:) – jdevelop 2013-02-17 21:18:49

回答

0

這是我爲您提供的鏈接代碼。看看這個鏈接有多種方式來做到這一點。雖然記得字符串是不可改變的,你不能真正做到這一點,除非你施放或使用焦炭等

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/

0

不能修改字符串對象可言,因爲它是不可變的。如果你想做一些事情,比如就地翻轉單詞,最好使用char數組。

+0

謝謝jdevelop。我在面試中被問到了這個問題,並且我在白板上寫了相同的代碼。面試官進一步表示我不會使用任何字符串變量,例如string reverse =「」;我需要修改相同的輸入String [] s = {貓坐在沙發上}。 – 2013-02-18 03:14:43

+0

這可能意味着interviever根本就沒有Java資格,或者他期望你說字符串是不可改變的,因此如果沒有反射或類路徑黑客行爲的一些骯髒技巧,他的任務就無法解決。然後最好在char數組上工作。 – jdevelop 2013-02-18 17:28:28

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;  
    } 

} 
+0

可以通過它們來反轉String [] s而不使用String temp = null嗎? – 2013-02-18 03:22:19

相關問題