如何在Java中仅用util.Scanner包对单个字符串按字母顺序排序?

问题描述 投票:0回答:1

只有 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的程序。

java sorting alphabetical anagram
1个回答
1
投票

似乎你想在这里交换元素i和j,但你却交换了元素0和1。

        if(ca[i]>ca[j]){
            temp = ca[0];
            ca[0]=ca[1];
            ca[1]=temp;
        }

而不是交换元素0和1.


0
投票

安装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); } 

(这只使用了Scanner导入,而没有使用其他的功能)

© www.soinside.com 2019 - 2024. All rights reserved.