java - 比较数组中的字符串元素

标签 java arrays string-comparison

我正在尝试比较数组中的元素。例如,

labels = ["abc1","abc2","abc3","abc4"]

我想获取具有最高值的字符串。在这种情况下它是 abc4。我对编码还很陌生,所以如果有人能帮助我解决逻辑问题,那就太好了。

最佳答案

您正在寻找的是一种将每个字符串相互比较的方法。

Java 有一个内置方法可以为 String 类执行此操作,称为 compareTo 方法。顾名思义,它将一个字符串与另一个字符串进行比较。

String a = "abc1";
String b = "abc2";
String c = "abc1";
System.out.println(a.compareTo(b)); // prints a negative number because `a` is smaller than `b`
System.out.println(b.compareTo(a)); // prints a positive number because `b` is bigger than `a`
System.out.println(c.compareTo(a)); // prints 0 because `a` and `b` have the same letters.

参见 official java doc对于 compareTo 方法:

[Returns]the value 0 if the argument string is equal to this string; a value less than 0 if this string is lexicographically less than the string argument; and a value greater than 0 if this string is lexicographically greater than the string argument.

您可以在您的示例中使用它的方式是:

String biggest = labels[0];
for(int i = 1; i < labels.length; i++){
  if(biggest.compareTo(labels[i]) < 0) biggest = labels[i];
}
System.out.println(biggest);

注意:有关此方法如何选择哪个“更大”的更多详细信息,请参阅 java 文档(链接在上面)。如果您对哪个应该更大有自己的规则,那么您可以制定自己的方法来定义它。

更新: 例如,参见 XtremeBaumer 的评论

"abc20".compareTo("abc100") = 1. Indicating that abc20 is bigger than abc100, thus making compareTo() not necessarily useful for the task

关于java - 比较数组中的字符串元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72814272/

相关文章:

java - 在 hibernate 中设置最大结果不按要求工作

java - 如何使用 Java 在 Selenium WebDriver 中生成报告

javascript - 如何使用jade中的变量调用数组的值

你能在结构中有一个数组吗?

c++ - 比较两个字符串(但类型不同)

Elasticsearch 和 QBOX 错误连接

java - Tomcat 如何在内部处理 session ?

arrays - 查询最小列标题,同时排除空白并处理重复项

Windows批量字符串比较if语句错误?

javascript - 在 JavaScript 中比较两个日期值(作为字符串)