0
所以有这样的代码,其是为了比较2个的用户输入是否是字谜。但是,当我运行代码并输入特定输入时,程序不会按字母顺序对输入进行正确排序。这是到目前为止我的代码:错误与排序和修整用户输入
import java.util.Scanner;
import java.util.*;
public class Anagram {
public static String sort(String s) {
char[] sorted = s.toCharArray();
Arrays.sort(sorted);
return new String(sorted);
}
public static String tidy(String s) {
String newInput = String.valueOf(s).toLowerCase().replaceAll("^[0-9A-Za-z]", "").trim();
return newInput;
}
public static String tidy2(String s) {
String newInput2 = String.valueOf(s).toLowerCase().replaceAll("[^0-9A-Za-z]", "").trim();
return newInput2;
}
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter line: ");
String inputLine = keyboard.nextLine();
System.out.print("Enter anagram: ");
String inputAnagram = keyboard.nextLine();
inputLine = sort(inputLine);
inputLine = tidy(inputLine);
inputAnagram = sort(inputAnagram);
inputAnagram = tidy(inputAnagram);
System.out.println(inputLine);
System.out.println(inputAnagram);
}
}
当我输入一个名称,如“罗伯特·格雷”或大写字母任何东西,它似乎仍然对大写字母排序第一。但是,当我切换主要方法体中的排序和整齐方法时,它工作正常。是否有这个原因,如何解决?
排序方法基于ASCII值对值进行排序。由于大写字母的ascii值小于小写字母,这就是大写字母首先出现的原因。你可以先调用'tidy'然后对它进行排序。那会给你正确的结果。 –
非常感谢! –