2015-11-01 41 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)