import java.util.Scanner;
import java.util.Arrays;
public class Anagram {
// Returns a copy of the string in sorted order.
public static String sort(String s) {
char [] sortString = s.toCharArray();
Arrays.sort(sortString);
String sorted = String.valueOf(sortString);
return s;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Enter line: ");
String line = in.next();
String lineString = line.replaceAll("[^0-9A-Za-z]", "");
String lineSortString = sort(lineString);
System.out.print("Enter anagram: ");
String anagram = in.next();
String anagramString = anagram.replaceAll("[^0-9A-Za-z]", "");
String anagramSortString = sort(anagramString);
if(lineSortString == anagramSortString){
System.out.println("\nAnagram!");
}else{
System.out.println("\nNot a anagram.");
}
}
}
要怎么改才行 实在不知道怎么弄
public static String sort(String s) {
char [] sortString = s.toCharArray();
Arrays.sort(sortString);
String sorted = String.valueOf(sortString);
return sordet;//这样改试试
}
字符串的比较,不能用 == 直接比较的。要用compareTo()。
public class Anagram {
// Returns a copy of the string in sorted order.
public static String sort(String s) {
char [] sortString = s.toCharArray();
Arrays.sort(sortString);
String sorted = String.valueOf(sortString);
return sorted;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Enter line: ");
String line = in.next();
String lineString = line.replaceAll("[^0-9A-Za-z]", "");
String lineSortString = sort(lineString);
System.out.print("Enter anagram: ");
String anagram = in.next();
String anagramString = anagram.replaceAll("[^0-9A-Za-z]", "");
String anagramSortString = sort(anagramString);
int t = lineSortString.compareTo(anagramSortString);
if(t==0){
System.out.println("\nAnagram!");
}else{
System.out.println("\nNot a anagram.");
}
}
}
插入这段代码,int t = lineSortString.compareTo(anagramSortString);
而且sort方法返回的是sorted。if()比较t == 0,相等。t > 0 ,是第一个字符串大于第二个,同理 t < 0,是第一个小于第二个