【问题标题】:Compare Two Strings with Greater than or Lower than Android Studio比较两个大于或小于 Android Studio 的字符串
【发布时间】:2022-01-28 17:52:29
【问题描述】:
我想比较两个字符串
X = 用户输入
Y = 系统输入
如果 X 大于 Y
比显示大于
如果 X 小于 Y
显示低于
这是我的代码,但它不起作用
if (X.compareTo(Y)>-1)
{
Toast.makeText(Activity2.this, "Greater Than", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(Activity2.this, "Lower Than", Toast.LENGTH_SHORT).show();
}
【问题讨论】:
标签:
java
string
android-studio
【解决方案1】:
我想您的> -1 是一种测试“等于或大于”的聪明方法。我建议避免使用这种聪明的代码。编写愚蠢的简单代码 (KISS) 使阅读变得更容易,更重要的是,调试变得更加容易。
Comparable 接口的compareTo 方法在相等时返回完全为零。如果不相等,则该方法返回一些大于零的数字,或一些小于零的数字。
引用 Javadoc:
返回负整数、零或正整数,因为此对象小于、等于或大于指定对象。
因此,更改您的测试以检查每一种可能性,看看 String#compareTo 实现的行为如何与您的期望不符。进行四次检查,是否等于零、大于零、小于零,如果前三个输入错误,则进行检查。
顺便说一下,根据 Java 命名约定,变量名应该以小写字母开头。所以x,而不是X。
int comparison = x.compareTo( y ) ;
if ( comparison == 0 ) {
…
} if ( comparison > 0 ) {
…
} if ( comparison < 0 ) {
…
} else {
… Oops, the “if” tests must be flawed. We should never reach this point.
}