【问题标题】:Make a string in java be ordered alphabetically?使java中的字符串按字母顺序排列?
【发布时间】:2017-07-23 00:18:02
【问题描述】:

我试图让一个人的名字按字母/反向字母顺序打印。到目前为止我有这个:

  Scanner name = new Scanner(System.in);
  String N1;                             
  String N2;                            
  String N3;                             
  double az_za;                         

   System.out.print("First name: ");
     N1 = name.nextLine();                    
   System.out.print("Middle name: ");
     N2 = name.nextLine();                  
   System.out.print("Last name: ");
     N3 = name.nextLine();                    

   System.out.print("Enter 1 (alphabetical order) or 2 (reverse alphabetical order):");
     az_za = name.nextDouble();                

String names[] = {N1, N2, N3}

我尝试过使用字符串,但我不知道如何使用它,如您所见。我也尝试过使用

if (N1.compareTo(N2) < 0) && (N1.compareTo(N3) < 0)

但我不确定要在 {} 中放入什么,因为我放入的内容等于按字母顺序隔离名称的内容。

我已经尝试了我的能力所允许的一切。我研究并查找了很多东西,但没有一个对我的案子有帮助,所以不要说“你试过什么,不会为你做作业”。顺便说一句,我也尝试过使用数组和 char(?),但我们还没有在课堂上学到这一点,所以我认为我们不能使用它们。

提前 TY

编辑:

好的,我想我明白了:

String names[] = {N1, N2, N3};
         if (az_za == 1) {
         Arrays.sort(names);
        } else if (az_za == 2) {
             Arrays.sort(names, Collections.reverseOrder());

从这里开始编译,但我不确定在“____”这里的实际打印语句中放什么

      if (az_za == 1) {              
         System.out.println("Your name in alphabetical order is " + __________);  
     }if (az_za == 2) {               
         System.out.println("Your name in reverse alphabetical order is " +_____________);  

因为如果我将 Arrays.sort(HERE) 中的内容放入其中,那就一团糟...

【问题讨论】:

标签: java


【解决方案1】:

将此添加到底部。

if (az_za == 1) {
    Arrays.sort(names);
} else if (az_za == 2) {
    Arrays.sort(names, Collections.reverseOrder());
} 

for (String namePart: names) {
    System.out.print(namePart + "   ");
}

【讨论】:

  • 由于某种原因,它一直说找不到变量数组的符号。你知道这意味着什么吗?
  • 是的,在课前将其添加到顶部。导入 java.util.Arrays;导入 java.util.Collections;导入 java.util.Scanner;
【解决方案2】:
String[] arr = { "d", "a", "b", "c" };
Arrays.sort(arr); // for alphabetical order
Arrays.sort(arr, (a, b) -> b.compareTo(a)); // for reverse alphabetical order
System.out.println(Arrays.toString(arr));

【讨论】:

    【解决方案3】:

    这是使用 Java8 执行此操作的最简单方法。

    public class SortNames {    
        public static void main(String[] args) {
            List<String> names = Arrays.asList("Steven", "Allen", "Bo");
            names.sort(String::compareToIgnoreCase);
            System.out.println(names);
        }    
    }
    

    输出如下所示。

    [Allen, Bo, Steven]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 2015-05-07
      • 2021-07-05
      相关资源
      最近更新 更多