如何反转数组中的所有字符串?

时间:2014-11-17 16:01:40

标签: java java.util.scanner reverse

如何反转数组输出?例如"peter""retep""max""xam"

我尝试使用收藏品,但它无效

这是我的代码:

import java.util.Scanner;
import java.util.Collections;

public class sdf {

    public static void main (String[] args) {
        Scanner input = new Scanner(System.in);
        String[] my_friend_names = new String[10];

        for (int i = 0; i < my_friend_names.length; i++) {
            my_friend_names[i] = input.nextLine();
        }
        for(int i = 0; i < my_friend_names.length; i++) {
            System.out.println("Name: " + my_friend_names[i]);
        }

        Collections.reverse(input);
        System.out.println("After Reverse order: " +input);
    }

}

4 个答案:

答案 0 :(得分:3)

似乎你创建了一个字符串数组,但是继续尝试反转输入。 如果你想使用集合,你可以这样做:

    List<String> list = Arrays.asList(my_friend_names);
    Collections.reverse(list);
    System.out.println("After Reverse order: " + list);

答案 1 :(得分:1)

您发布的代码无法编译,例如您在扫描仪变量上调用Collections.reverse()。

可能对你有帮助的事情。

  • 你假设Collections.reverse()将反转数组中的字符串 - 它不会,它只是反转字符串的顺序,例如。
  • Collections.reverse()适用于java.util.List而不是原始数组,如果需要,可以使用Arrays.toList()
  • StringBuilder提供句柄reverse()方法

示例,使用StringBuilder.reverse()更新用反转的String替换数组中的每个项目

String[] my_friend_names = { "fred", "alice" };

for (int i = 0; i < my_friend_names.length; i++) {
    my_friend_names[i] = new StringBuilder(my_friend_names[i])
            .reverse().toString();
}

System.out.println(Arrays.toString(my_friend_names));

输出

[derf, ecila]

答案 2 :(得分:0)

我认为这是从char[]制作String的最佳方式,与char[]相反,并将其转换回String

这样的事情应该可以胜任:

    Scanner input = new Scanner(System.in);
    String[] my_friend_names = new String[10];

    for (int i = 0; i < my_friend_names.length; i++) {
        my_friend_names[i] = input.nextLine();
    }

    input.close();

    for(String name : my_friend_names) {
        System.out.println("Name: " + name);
    }

    for(int i=0; i<my_friend_names.length; i++) {
        char[] characters=my_friend_names[i].toCharArray();
        List<char[]> reverse=Arrays.asList(characters);
        Collections.reverse(reverse);
        my_friend_names[i]=new String(characters);
    }

    System.out.println("After Reverse order: ");

    for(String name : my_friend_names) {
        System.out.println("Name: " + name);
    }

让我知道它是否有效 快乐编码:) -Charlie

答案 3 :(得分:0)

您正在尝试打印出类似于Scanner的input。尝试使用StringBuilder

Scanner input = new Scanner(System.in);
String[] my_friend_names = new String[10];

for (int i = 0; i < my_friend_names.length; i++) {
    my_friend_names[i] = input.nextLine();

    String reversedName =  new StringBuilder(my_friend_names[i]).reverse().toString();
    System.out.println("After reverse: " + reversedName);
}