Java使用compareTo和一个字符串数组

时间:2011-10-03 01:50:31

标签: java arrays string

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

如果它只是查看长度,我将如何比较字符串数组中的两个元素,以查看哪个元素更大。

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

我的工作正常,唯一的问题是当有两个相同长度的字符串时,它会返回第一个字符串。

简单说明compareTo方法如何查看字符串将有助于我解决这个问题我认为

数字串如何在词汇上进行比较? 17会大于15吗?

3 个答案:

答案 0 :(得分:0)

字符串的

compareTo按字典顺序完成。 (或按字母顺序)它不比较字符串的长度。

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

A小于B.

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

编辑:

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

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

答案 1 :(得分:0)

compareTo将比较字符串的字母顺序(词典编纂)顺序。

请参阅documentation here.

答案 2 :(得分:0)

  

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

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

  

如果它只是查看长度,我将如何比较字符串数组中的两个元素,以查看哪个元素更大。

没有,所以这个问题没有实际意义。

  

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

     

我的工作正常,唯一的问题是当有两个相同长度的字符串时,它会返回第一个字符串。

我们需要查看您的代码以了解实际出现的问题,但很可能是由于{{1 }}

  

数字串如何在词汇上进行比较? 17会大于15吗?

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

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

  

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