使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中的字符串按字母顺序排列?的主要内容,如果未能解决你的问题,请参考以下文章