Java使用带有字符串数组的compareTo

Java使用带有字符串数组的compareTo,java,arrays,string,Java,Arrays,String,我想知道compareTo方法是只查看字符串的长度,还是查看字符串的每个字符 如果只看长度,我怎么能比较字符串数组中的两个元素,看哪个元素更大 我要做的是编写一个方法,递归地查看数组的右侧、中间和左侧,并返回数组中最长字符串的索引 我让它工作得很好,唯一的问题是当有两个长度相同的字符串时,它返回第一个字符串 我认为,只要澄清compareTo方法如何看待字符串,就能帮助我解决这个问题 数字串如何按字母顺序进行比较?17会比15大吗?比较,因为字符串是按字典顺序完成的。(或按字母顺序)它不会比较字

我想知道compareTo方法是只查看字符串的长度,还是查看字符串的每个字符

如果只看长度,我怎么能比较字符串数组中的两个元素,看哪个元素更大

我要做的是编写一个方法,递归地查看数组的右侧、中间和左侧,并返回数组中最长字符串的索引

我让它工作得很好,唯一的问题是当有两个长度相同的字符串时,它返回第一个字符串

我认为,只要澄清compareTo方法如何看待字符串,就能帮助我解决这个问题


数字串如何按字母顺序进行比较?17会比15大吗?

比较
,因为字符串是按字典顺序完成的。(或按字母顺序)它不会比较字符串的长度

如果A按字母顺序排在B之前,则A小于B

如果要比较字符串的长度,可以从
.length()
方法获取长度,并将其作为整数进行比较

编辑:

按字典顺序由ASCII/UNICODE值完成


因此,在您的示例中,
17
大于
15
。因为
1
是相同的(平局),而且
7
的ASCII/UNICODE值高于
5

比较将比较字符串的字母顺序(字典顺序)

我想知道compareTo方法是只查看字符串的长度,还是查看字符串的每个字符

它(可能)查看字符串中的每个字符。当然,这不仅仅是看长度

如果只看长度,我怎么能比较字符串数组中的两个元素,看哪个元素更大

没有,所以这个问题没有意义

我要做的是编写一个方法,递归地查看数组的右侧、中间和左侧,并返回数组中最长字符串的索引

我让它工作得很好,唯一的问题是当有两个长度相同的字符串时,它返回第一个字符串

我们需要查看您的代码以了解实际出了什么问题,但最有可能的原因是不是
字符串语义中的一些奇怪之处。与(字符串)

数字串如何按字母顺序进行比较?17比15大吗

是的,它会按字典顺序比较字符串。是的,“17”比“15”大。(但是如果你在数字上也比较字符串,“17”将大于“15”。另一方面,“7”在字典上大于“13”,但在数字上小于它。)

也许你需要仔细阅读“词典顺序”的含义;维基百科:

在数学中,词典或词典顺序(也称为词汇顺序、词典顺序、字母顺序或词典(al)产品)是单词字母顺序基于字母顺序的概括方式


只看长度并不能真正实现文档所说的功能,是吗?您可能会发现[文档](很有用。如果您只想比较字符串长度,那么您可能会发现
length()
compareTo()更有用)
。不,它必须查看每个字符,我不确定compareTO是否需要最长的字符串。但是当两个字符串的长度相同时,它会返回第一个。但这不是你想要的。所以你希望它返回第二个,而不是第一个?!它实际上告诉了细节,为了深入研究,你可以t查看字符串源代码。