Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何反转数组中的所有字符串?_Java_Java.util.scanner_Reverse - Fatal编程技术网

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

Java 如何反转数组中的所有字符串?,java,java.util.scanner,reverse,Java,Java.util.scanner,Reverse,如何反转阵列输出?像彼得后撤或者马克斯后撤 我试图使用集合,但它不起作用 这是我的代码: 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 =

如何反转阵列输出?像彼得后撤或者马克斯后撤

我试图使用集合,但它不起作用

这是我的代码:

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

}

您发布的代码无法编译,例如,您在scanner变量上调用Collections.reverse

可能对你有帮助的事情

您假设Collections.reverse将反转数组中的字符串-它不会,它只是反转字符串的顺序,例如。 Collections.reverse在java.util.List上工作不是一个基本数组,如果需要,可以使用Arrays.toList StringBuilder提供了一个句柄反转方法 例如,使用StringBuilder.reverse更新并使用反转字符串替换数组中的每个项

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

我认为这是从字符串生成char[]的最佳方法,将该char[]反转并将其转换回字符串

像这样的东西应该可以完成这项工作:

    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

似乎您创建了一个字符串数组,但随后继续尝试反转输入。 如果要使用集合,可以执行以下操作:

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

您正在尝试打印扫描仪类型的输入。尝试使用StringBuilder


澄清。是否要反转数组中项目的顺序?或者颠倒项目中字母的顺序?欢迎使用Stack Overflow SO。请阅读底线是,您提供的源代码与您提出的问题不一致。我认为你不明白你要解决的问题
    List<String> list = Arrays.asList(my_friend_names);
    Collections.reverse(list);
    System.out.println("After Reverse order: " + list);
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);
}