我想知道是否可以将字符串比作数字一样。例如,你有什么方法可以做到"Cat" > "Dog"
答案 0 :(得分:5)
您不能按照建议使用运算符(例如"Cat" < "Dog"
)。正如@larsmans所说,这将需要运算符重载,Java没有提供。但是,您仍然可以使用"Cat".compareTo("Dog")
来比较字符串,如果字符串相等则返回0,如果"Cat"
lexicographically小于"Dog"
,则返回大于0的数字,或者为负数否则就是数字。
请参阅this page
答案 1 :(得分:4)
只需实现Comparator界面并以您喜欢的方式实现比较。
答案 2 :(得分:1)
你做不到。这需要operator overloading,即Java won't let you。
答案 3 :(得分:0)
不,不存在。 你必须使用compareTo()。
答案 4 :(得分:0)
您可以使用String
compareTo
方法
答案 5 :(得分:0)
您需要使用以下某种方法:
int compare(String s1, String s2); // write code to do comparison.
答案 6 :(得分:-1)
由于唯一的方法是为每个单词保留一个设定值,您将使用数组或其他形式的数据存储。
下面是一个示例,您只需将单词及其对应的值保留在两个数组中(注意,它们必须按相同的顺序排列,因此第一个单词与第一个数字对应,等等)。
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<words.length;x++){
if(str.equalsIgnoreCase(words[x])){
return value[x];
}
}
return -1;
}