反向字符串数组 w/Method
Reverse String Array w/Method
我需要使用静态方法 return 从另一个字符串数组反向 returns 一个字符串数组。因此,如果形式参数中的数组等于 "hello"、"there",则 return 需要为 "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;
}
查看我使用 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;
}
所以你想反转数组中的每个字符串。
这是反转单个字符串的一种方法:
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;
}
您可以使用 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);
}
To use this library in android compile 'org.apache.commons:commons-lang3:3.5'
使用 [Commons.Lang][1],您只需使用
ArrayUtils.reverse(int[] array)
我需要使用静态方法 return 从另一个字符串数组反向 returns 一个字符串数组。因此,如果形式参数中的数组等于 "hello"、"there",则 return 需要为 "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;
}
查看我使用 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;
}
所以你想反转数组中的每个字符串。
这是反转单个字符串的一种方法:
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;
}
您可以使用 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);
}
To use this library in android compile 'org.apache.commons:commons-lang3:3.5'
使用 [Commons.Lang][1],您只需使用
ArrayUtils.reverse(int[] array)