带方法的反向字符串数组

时间:2015-11-01 21:35:12

标签: java arrays string methods reverse

我需要使用一个静态方法,它反向从另一个字符串数组返回一个字符串数组。因此,如果形式参数中的数组等于“hello”,则“返回”返回需要为“olleh”,“ereht”。

我的想法是使用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;
}

4 个答案:

答案 0 :(得分:2)

所以你想要反转数组中的每个字符串。

这是扭转单个字符串的一种方法:

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

借助上述方法,您可以创建反向字符串数组,如下所示:

fitMapViewToAnnotaionList

答案 1 :(得分:1)

您可以使用StringBuilder#reverse来反转字符串。

以下代码将反转给定数组中的所有字符串:

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

使用Java 8流的更优雅的单行解决方案是:

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

答案 2 :(得分: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;
}

答案 3 :(得分:0)

  

在android编译中使用这个库'org.apache.commons:commons-lang3:3.5'

使用[Commons.Lang] [1],你可以简单地使用

ArrayUtils.reverse(int[] array)