使java中的字符串按字母顺序排列?

Posted

技术标签:

【中文标题】使java中的字符串按字母顺序排列?【英文标题】:Make a string in java be ordered alphabetically? 【发布时间】: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) 中的内容放入其中,那就一团糟...

【问题讨论】:

String names[] = N1, N2, N3 一个数组。 请致电Arrays.sort(names) 按字母顺序重新排列名称?还是名称中的字母? 看看这是否有帮助...我无法发表评论,因为少于 50 个代表大声笑***.com/questions/12681103/java-alphabetizing-strings 【参考方案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]

【讨论】:

以上是关于使java中的字符串按字母顺序排列?的主要内容,如果未能解决你的问题,请参考以下文章

使用 SQL 按字母顺序重新排列字符串中的字符 [关闭]

用单词和数字按字母顺序排列字符串

使用冒泡排序对Java中的名称数组按字母顺序排序

检查一个字符串的字母在另一个字符串中是不是按顺序排列

java中怎样把输入的基本英文单词按首字母顺序排列?

按字母顺序排列字符串数组(甚至是 *ptr)