java compareTo不适用于两位数

标签 java string compare compareto

如果我将 0 或 9 用于 menuInput,则以下代码可以正常工作,循环将再次迭代。如果我使用 10,则满足循环条件并退出。我猜 compareTo 只有在我以这种方式使用时才看起来是第一个值?当我将 menuInput 设置为 99 时,循环再次迭代。我是初学者,我不确定用什么替换 compareTo。泰!

do...

code

while (menuInput.compareTo("8") > 0 || menuInput.compareTo("1")<0);

最佳答案

String 中的compareTo 是lexicographical - 它按第一个字符的字母顺序排序,然后按字母顺序排序,因此“1”<“2”但“11”<“2”也是如此。如果您想进行数字比较,请使用 Integer.parseInt 转换为整数.

关于java compareTo不适用于两位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16973205/

相关文章:

c# - 接受字符串输入并删除出现一定次数的所有字符的函数

python-3.x - 检查字符串中连续出现了多少次

algorithm - 在 n 个人中找到至多 (n/2)-1 个说谎者的最快算法

java - 在 Groovy/Java 中比较两个 XML 字符串/文件

java - 使用 Apache POI 从 Excel 读取单元格

java - 拆分字符串 Java(在特定字符处)

java - 在 while 循环中使用 try-finally block

java - Android Studio 从共享 Intent 发送文本

python - python脚本中的多语言支持

Shell 脚本 - 比较文本行,删除匹配项