Java 比较两个单词(字符串)

Java 比较两个单词(字符串),java,string,string-comparison,Java,String,String Comparison,这个代码是什么意思 if( item.compareTo(root.element) < 0 ){ } if(item.compareTo(root.element)0),是否等于(结果 是=0),或小于(结果是

这个代码是什么意思

if( item.compareTo(root.element) < 0 ){

   }
if(item.compareTo(root.element)<0){
}
我读到:

“按字典顺序比较两个字符串。返回一个整数,表示 此字符串是否大于(结果>0),是否等于(结果 是=0),或小于(结果是<0)参数。“


但我不明白。有人能举例说明吗?

您可以在对代码进行排序时使用此选项,以查看
是否属于
根元素之前。

它检查两个字符串是否像这样相等

a>A  would return a positive number as `a` is greater than `A`
A>a  would return a negetive number as `A` is less than `a`
a==a would return 0 as `a` is equal to `a`
a>Z  would return a positive number as 'a' is greater than 'A'
trend> zend would return a positive number as `t` is greater than 'z'   

看看接口的文档,它首先定义了方法。
String
中此接口的实现遵循相同的约定:

将此对象与订单的指定对象进行比较。当此对象小于、等于或大于指定对象时,返回负整数、零或正整数


这意味着:如果当前字符串小于作为参数接收的字符串(在下),则返回一个负整数值。如果当前字符串大于作为参数接收的字符串,则返回正整数值。否则,字符串相等并返回
0

someObject。如果某个对象在另一个对象之前,则compareTo(另一个对象)返回负数

下面是一个比较字符串对象的示例:

if ("apple".compareTo("zebra") < 0) {
    System.out.println("I will be printed");
}
else {
    System.out.println("I will NOT be printed");
}
if(“苹果”。与(“斑马”)相比<0){
System.out.println(“我将被打印”);
}
否则{
System.out.println(“我不会被打印”);
}

如果word1=item和word2=root.element都在字典中,word1应该出现在word2之前。

是否按字母顺序排序?是。。。如果项和根是字符串。实现
Comparable
接口的每个类都必须定义
compareTo
方法,赋予它对该类有意义的语义。@jpm对它进行了完美的描述-一般来说,它可能是按字母顺序排列的,但这实际上取决于compareTo的实现者在其实现中做了什么!它如何确定哪个字符串更大?使用,即:如果一个字符串“a”出现在字典中其他字符串“b”之前,则表示“a”小于“b”。按字典顺序(即字母顺序)。我不确定问题是什么。@AdegokeA“它如何确定哪个字符串更大?”Java使用其在中的位置来比较字符串。例如,在排序之后,您将得到类似于x、y、z中的
12、3、Aa、BB、a、BB、Ň、Ň
?或者x等于一个字符串?如果x是一个字符串,它是按字母顺序计算的吗?@AdegokeA-我编辑了我的答案,所以(希望)它更有意义。回答您的问题:是的,如果对象是字符串,则按字母顺序进行比较。如果对象不是字符串,则该行为由相关类实现compareTo的方式定义。这就是可比界面的美妙之处。任何对象都可以实现它,任何实现它的对象都可以进行排序和比较(不知道它是如何工作的)。这是不正确的:compareTo不一定返回
-1
0
1
。它返回
一个负数
,或
一个正数
。例如
“A”。compareTo(“A”)
返回-32。没问题。这些比较返回的实际值是:
-32,32,0,7,-6
。这让我们对如何计算这些值有了一点了解。因此,它们基本上会返回ascii值。我说得对吗?对于一个简单的单字符比较,您将得到与ascii值差异非常相似的结果。如果比较字符串,则会考虑每个字符的值和位置(我相信)。对于
trend和zend
来说,它似乎找到了第一个区别,而不关心之后会发生什么。我现在正在测试程序中使用它,这很容易做到。@jahroy awesome mahn。。再次感谢你让我知道,我一直在吹嘘它的-1,1,0回报。。哈哈……)