简体   繁体   English

如何仅使用 Java 中的 util.Scanner package 按字母顺序对单个字符串进行排序?

[英]How to sort a single String in Alphabetic Order with only util.Scanner package in Java?

Only the import java.util.Scanner package is allowed.只允许import java.util.Scanner package。

How to Sort a Single String (it's characters) in Alphabetic order in Java?如何在 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" );
    }
}

This is my code.这是我的代码。 I tried this.我试过这个。 but this sorting does'nt work.但这种排序不起作用。 it's actually program for Anagram.它实际上是 Anagram 的程序。

Seems you wanted to exchange elements i and j here:似乎你想在这里交换元素 i 和 j :

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

but instead you exchange elements 0 and 1.但是您交换元素 0 和 1。

Install java 1.8 and use its outstanding feature as shown in the below code.安装 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); } 

( This uses only Scanner import and nothing else ) (这仅使用扫描仪导入,没有别的)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM