我现在正在学习java。我有一本达到SE6日期的书。 现在有一个练习让我问:
编写一个接受两个String参数的方法,并使用所有布尔比较来比较两个字符串并打印结果。在main();用一些不同的String对象调用你的方法。
当我尝试时:
public static void compare(String a, String b){
System.out.println(a>b);
}
我收到错误> operator is not valid for type String
现在我的问题是 - 如果这本书已经过时而且有些事情发生了变化,或者我是否误解了任务中的某些内容?
答案 0 :(得分:1)
我想这个任务是为了让你提供自己的字符串比较实现,例如:
for (int i = 0; i < Math.max(a.length(), b.lentgh(); i++) {
if (a[i] < b[i]) {
System.out.println("a < b");
return;
}
// ...
字符串是对象,而不是基元,不能与比较运算符进行比较。在String中有一个compareTo(String anotherString)方法,它返回一个数字,具体取决于哪个字符串在词法上更大。
答案 1 :(得分:0)
您不能在Java中的字符串上使用关系运算符(&lt;,&lt; =,&gt;,&gt; =)。 Java不依赖于运算符重载。
您可以使用compareTo方法比较字符串: 如果参数是一个按字典顺序排列等于该字符串的字符串,则值为0;如果参数是按字典顺序大于此字符串的字符串,则小于0的值;如果参数是一个按字典顺序小于该字符串的字符串,则值大于0。