如何在java中比较两个数字字符串

如何在java中比较两个数字字符串,java,Java,非常愚蠢的问题,我不明白。在java中比较数字字符串时,为什么01小于1 Ashley因为0小于1。词典比较是每个字符的比较,以第一个不同的字符停止 详细描述见: 这是词典排序的定义。如果两个字符串不同,则要么它们在某个索引处具有不同的字符,该索引是两个字符串的有效索引,要么它们的长度不同,要么两者都不同。如果它们在一个或多个索引位置具有不同的字符,则k是此类索引的最小值;然后,由于0小于1,使用确定其字符在位置k处具有较小值的字符串。词典比较是每个字符的比较,以第一个不同的字符停止 详细描述见

非常愚蠢的问题,我不明白。在java中比较数字字符串时,为什么01小于1

Ashley因为0小于1。词典比较是每个字符的比较,以第一个不同的字符停止

详细描述见:

这是词典排序的定义。如果两个字符串不同,则要么它们在某个索引处具有不同的字符,该索引是两个字符串的有效索引,要么它们的长度不同,要么两者都不同。如果它们在一个或多个索引位置具有不同的字符,则k是此类索引的最小值;然后,由于0小于1,使用确定其字符在位置k处具有较小值的字符串。词典比较是每个字符的比较,以第一个不同的字符停止

详细描述见:

这是词典排序的定义。如果两个字符串不同,则要么它们在某个索引处具有不同的字符,该索引是两个字符串的有效索引,要么它们的长度不同,要么两者都不同。如果它们在一个或多个索引位置具有不同的字符,则k是此类索引的最小值;然后,位置k处的字符具有较小值的字符串,这是通过使用确定的,因为字符串比较比较实现依赖于比较字符串的每个字符unicode值的比较

而1U+0031Unicode在0U+0030Unicode之后,根据 unicode表

它的工作方式与字典中的工作方式相同,而与数字比较中的工作方式不同。 比较的是一些字符串,而不是一些数字

azerty在zip之前,因为a在z之前

1和01的情况是一样的。 0在1之前。so01<1

您可以参考javadoc来更好地理解该方法的约定。

因为字符串比较比较实现依赖于比较字符串的每个字符unicode值的比较

而1U+0031Unicode在0U+0030Unicode之后,根据 unicode表

它的工作方式与字典中的工作方式相同,而与数字比较中的工作方式不同。 比较的是一些字符串,而不是一些数字

azerty在zip之前,因为a在z之前

1和01的情况是一样的。 0在1之前。so01<1


您可以参考javadoc来更好地理解方法的约定。

假设您想要比较两个字符串的数值,它们是整数:

Integer.parseInt("0") < Integer.parseInt("01")

假设您要比较两个字符串的数值,它们是整数:

Integer.parseInt("0") < Integer.parseInt("01")

由语言环境决定如何比较字符串。对于西方语言,你有一个简单的字符顺序,从左边开始。这里最左边的字符分别是0和1,0的unicode值低于1,这会立即决定以0开头的字符串位于以1开头的字符串之前


字符串一个字符一个字符地意外地类似于整数之类的东西,这与此机制无关。如果这与您需要解决的任务相关,您需要编写代码来考虑这一点。

如何比较字符串取决于语言环境。对于西方语言,你有一个简单的字符顺序,从左边开始。这里最左边的字符分别是0和1,0的unicode值低于1,这会立即决定以0开头的字符串位于以1开头的字符串之前


字符串一个字符一个字符地意外地类似于整数之类的东西,这与此机制无关。如果这与您需要解决的任务相关,您需要编写代码来考虑这一点。

因为“0”与“1”。我不知道为什么您投了反对票。我不想知道如何比较字符串。我只是想知道为什么一个字符串比另一个字符串小。就这些。请在投票前仔细阅读问题。因为“0”<“1”。不知道你们为什么投票被否决。我不想知道如何比较字符串。我只是想知道为什么一个字符串比另一个字符串小。就这些。请在表决前仔细阅读这个问题。
Integer.parseInt("0") < Integer.parseInt("01")