2015-11-01 79 views
-1

我需要使用一個靜態方法,它從另一個字符串數組中返回一個字符串數組。因此,如果形式參數中的數組等於「你好」,那麼「返回」需要是「olleh」,「ereht」。反向字符串數組w /方法

我的想法是使用charAt命令,但它似乎不適用於數組。我無法使用內置方法一步解決此問題。我也不知道如何移動到數組中的下一個元素。這是我的代碼。

部分主要方法,設置了原始數組:

String [] d = {"hey","hello"}; 
    System.out.println(Arrays.toString(count(d))); 

我的方法:

private static String [] count(String[] d) 
{ 
    String[] reverse = new String [d.length]; 
    int l = d.length; 
    for(int i = l -1; i >= 0; i--) 
    { 
     reverse = reverse + d.charAt(i); 

    } 
    return reverse; 
} 
+0

這顯示了他們的方式爲一個Int數組的一部分。我不知道如何爲字符串數組做這件事。 – frillybob

+0

試試這個... http://stackoverflow.com/a/22282907/3660930 – Ash

回答

2

所以你想反轉數組中的每個字符串。

這裏的扭轉一個字符串的一種方法:

private static String reverseString(String s) { 
    char[] orig = s.toCharArray(); 
    char[] reverse = new char[orig.length]; 
    for (int i = 0; i < orig.length; i++) {  
     reverse[i] = orig[orig.length - i - 1]; 
    } 
    return new String(reverse); 
} 

通過上述方法的幫助下,你可以創建逆轉的字符串數組是這樣的:

private static String[] reverseMany(String[] strings) { 
    String[] result = new String[strings.length]; 
    for (int j = 0; j < strings.length; ++j) { 
     result[j] = reverseString(strings[j]); 
    } 
    return result; 
} 
+1

澄清:我需要保持實際的元素在同一個地方。我需要反轉元素的內容並返回它。 – frillybob

+1

查看我的更新日誌 – janos

+0

有沒有辦法只用一種方法來做到這一點?我不相信我的指示會允許我這樣做。我知道在Matlab中有一些功能。 Java中有沒有類似的東西可以做到這一點? – frillybob

0

檢查出這個代碼,我使用PHP創建的,這是很簡單的:

// the array you want to reverse 
$array = [13, 4, 5, 6, 40]; 
// get the size of the array 
$arrayLength = count($array); 
// get the index of the middle of the array 
$index = intval($arrayLength/2); 
for ($i=0; $i < $index; $i++) { 
    // we store the value in a temp variable 
    $tmp = $array[$i]; 
    // and finaly we switch values 
    $array[$i] = $array[$arrayLength - $i - 1]; 
    $array[$arrayLength - $i - 1] = $tmp; 
} 
+2

你爲什麼要提供PHP代碼? –

+0

我不確定我可以遵循該代碼。我假設$字符表示一個變量。有人說,我不知道intval是什麼以及它在java中的類似方法。 – frillybob

+0

yes'$'是變量的名稱,'intval'的等價物只是一個int類型的變量,可以通過'(int)a/b'來完成 – teeyo

1

您可以使用StringBuilder#reverse用於反轉字符串。使用Java 8流將是

private static String [] count(String[] d) 
{ 
    String[] reverse = new String [d.length]; 
    for(int i = 0; i < d.length; i++) 
    { 
     reverse[i] = new StringBuilder(d[i]).reverse().toString(); 
    } 
    return reverse; 
}  

的更優雅,一行溶液:

下面的代碼將扭轉所有字符串從一個給定的陣列

private static String [] count(String[] d) 
{ 
    return Arrays.stream(d).map(s -> new StringBuilder(s).reverse().toString()).toArray(String[]::new); 
}  
0

要使用該在android編譯的庫'org.apache.commons:commons-lang3:3.5'

與[Commons.Lang] [1],你可以簡單地使用

ArrayUtils.reverse(int[] array)