在Java中与字符串相比较

Ord*_*rdo 2 java

我正在寻找一种比较两个字符串的解决方案.我已经找到了一些建议,但我并不真正理解如何做到这一点.我想做那样的事情:

String a = 23;
String b = 2;

if (a < b)
System.out.println("...");
else ..
Run Code Online (Sandbox Code Playgroud)

我找到了compareTo方法,但我不明白它背后的想法.代码如下:

String a = 23;
String b = 2;

if (a.compareTo(b) < 0)
System.out.println("...");
else ..
Run Code Online (Sandbox Code Playgroud)

但为什么我要相互比较字符串,然后将它与零比较?我真的很困惑.

fas*_*ava 6

你不能a < b用java 做String.你必须使用compareToComparator.你也写不出来String a = 23;.你可以将它们转换为整数然后再做a < b.

  • 你不能那样比较数字.如果`b`是`3`而不是`2`那么`a.compareTo(b)`将返回true,因为`23`是_lexicographically_小于'3`. (2认同)

Sam*_*age 5

阅读compareTo的API

a.compareTo(b)
Run Code Online (Sandbox Code Playgroud)

此方法调用的结果:
如果a按字母顺序排在前面(例如a ="apple",b ="bananna"),
则为负数(因此<0)如果是相同的字符串则为0,如果
是a,则为正数按字母顺序排在后面

如果要比较数值,可以在整数上进行比较,也可以先解析字符串,例如

if (Integer.parseInt(a) < Integer.parseInt(b)){
   ...
} else {
 ...
}
Run Code Online (Sandbox Code Playgroud)