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

如何使用 Java 在 MySQL 表中仅搜索一条特定记录

Java异常处理

使用Java实现BMI指数测试

在 Spring 集成中,如何仅使用 java 注释配置消息网关,并确保网关看到回复

java对于目录下的相关文件的单词操作

java入门实现转换