比较字符串就好像它们是数字一样

我想知道是否有可能比较字符串就好像它们是数字一样。 比如有没有什么方法可以让"Cat" > "Dog"

由于唯一的方法是为每个单词保留一个设定值,您将使用数组或其他forms的数据存储。

下面是一个示例,您只需将单词及其对应的值保存在两个数组中(注意,它们必须按相同的顺序排列,因此第一个单词与第一个数字对应,等等)。

 public static String[] words = {"cat","dog","banana"}; public static int[] value = {3,4,5}; public static void main(String[] args){ if(valOf("Cat") > valOf("Dog")){ System.out.print("Cat is greater than Dog"); } else{ System.out.print("Cat is not greater than Dog"); } } public static int valOf(String str){ for(int x=0;x 

您不能按照建议使用操作员(例如"Cat" < "Dog" )。 正如@larsmans所说,这将需要运算符重载,Java没有提供。 但是,您仍然可以使用"Cat".compareTo("Dog")来比较字符串,如果字符串相等则返回0,如果"Cat" 字典顺序小于"Dog"则返回大于0的数字,否则返回负数。

见本页

只需实现Comparator接口并以您喜欢的方式实现比较。

这是Javadoc

你不能。 这将需要运算符重载 ,Java 不会让你 。

不,不存在。 你必须使用compareTo()。

您可以在String使用compareTo方法

你需要使用如下方法:

 int compare(String s1, String s2); // write code to do comparison.