簡體   English   中英

如何反轉數組中的所有字符串?

[英]How do I reverse all Strings in my array?

如何反轉陣列輸出? 就像"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);
    }

}

似乎您創建了一個字符串數組,但是接下來嘗試反向輸入。 如果要使用集合,可以執行以下操作:

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

您發布的代碼無法編譯,例如,您在掃描程序變量上調用Collections.reverse()。

可能對您有幫助的事情。

  • 您假設Collections.reverse()將反轉數組中的字符串-不會,它只是反轉字符串的順序,例如
  • Collections.reverse()可以在java.util.List上使用,而不是原始數組,可以在需要時使用Arrays.toList()
  • StringBuilder提供了一個handle 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]

我認為這是從String創建char[] ,反轉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);
    }

讓我知道它是否有效
快樂的編碼:)-查理

您正在嘗試打印出掃描儀類型的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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM