只有 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的程序。
似乎你想在这里交换元素i和j,但你却交换了元素0和1。
if(ca[i]>ca[j]){
temp = ca[0];
ca[0]=ca[1];
ca[1]=temp;
}
而不是交换元素0和1.
安装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导入,而没有使用其他的功能)