java - 如何仅使用Java中的util.Scanner包按字母顺序对单个字符串进行排序?
Posted
技术标签:
【中文标题】java - 如何仅使用Java中的util.Scanner包按字母顺序对单个字符串进行排序?【英文标题】:How to sort a single String in Alphabetic Order with only util.Scanner package in Java? 【发布时间】:2020-09-10 01:28:25 【问题描述】:只允许使用 import java.util.Scanner
包。
如何在 Java 中按字母顺序对单个字符串(它的字符)进行排序?
import java.util.Scanner;
public class Solution
static boolean isAnagram(String a, String b)
int i,j,k,l;
char temp;
// Complete the function
a = a.toLowerCase();
b = b.toLowerCase();
char [] ca =a.toCharArray();
char [] cb = b.toCharArray();
for(i=0;i<=a.length()-1;i++)
for(j=i+1;j<=a.length()-1;j++)
if(ca[i]>ca[j])
temp = ca[i];
ca[i]=ca[j];
ca[j]=temp;
for(k=0;k<=b.length()-1;k++)
for(l=k+1;l<=b.length()-1;l++)
if(cb[k]>cb[l])
temp = cb[k];
cb[k]=cb[l];
cb[l]=temp;
a = String.valueOf(ca);
b = String.valueOf(cb);
if(a.equals(b))
return true;
else
return false;
public static void main(String[] args)
Scanner scan = new Scanner(System.in);
String a = scan.next();
String b = scan.next();
scan.close();
boolean ret = isAnagram(a, b);
System.out.println( (ret) ? "Anagrams" : "Not Anagrams" );
这是我的代码。我试过这个。但这种排序不起作用。它实际上是 Anagram 的程序。
【问题讨论】:
基本上这意味着你必须自己做,而不使用库方法。试试看! 如果您尝试过但遇到困难,请出示您的代码,我们可以帮助您解释问题所在。不过,这不是一个寻求解决方案的地方 我试过了,但我找不到。有人可以帮忙吗?我是编程初学者。 【参考方案1】:您似乎想在这里交换元素 i 和 j:
if(ca[i]>ca[j])
temp = ca[0];
ca[0]=ca[1];
ca[1]=temp;
但是您交换元素 0 和 1。
【讨论】:
是的!你是对的:) 现在可以正常工作了。我得到了输出。谢谢:p 这是一个愚蠢的错误【参考方案2】:安装 java 1.8 并使用其出色的功能,如下面的代码所示。
Scanner scanner = new Scanner(System.in);
System.out.println("Enter a string:" );
String data = scanner.next();
data.chars().sorted().forEach( character -> System.out.print((char)character);
(这仅使用扫描仪导入,没有其他)
【讨论】:
不,你也可以在 Java 7 中做到这一点。我得到了输出。我编辑了代码。看看它是如何工作的!以上是关于java - 如何仅使用Java中的util.Scanner包按字母顺序对单个字符串进行排序?的主要内容,如果未能解决你的问题,请参考以下文章