如何比较Java中的两个数字字符串?

时间:2016-02-18 04:21:26

标签: java string-comparison

我想比较两个数字字符串,如“1.0.1”和“2.1.1”。 我是否知道Java中有任何字符串实用工具方法可以比较或需要实现像删除。(点),解析为整数并手动比较?谢谢。

4 个答案:

答案 0 :(得分:0)

  

删除。(点)

myString.replaceAll("\\.","")
  

解析为整数

int myInt = Integer.parseInt(myString);
  

手动比较

if(myInt < myInt2) { // ....

答案 1 :(得分:0)

您可以使用String.replaceAll(String regex, String replacement)将所有点替换为空字符串。

String str1 = "1.0.1";
str1 = str1.replaceAll(".","");
int num1 = Integer.parseInt(str1);
// similarly for num2
String str2 = "2.1.2";
str2 = str2.replaceAll(".","");
int num2 = Integer.parseInt(str2);
if (num1 == num2)
// do Something
else
// do Something else.

答案 2 :(得分:0)

您可以使用mystr.replace('.', '')并使用mystr.equals(mystr2)进行比较。或者将字符串作为可以解析为Integer的数字进行比较,如下所示:

myInt = Integer.parseInt(mystr);
if(myInt == myInt2) {
   // do something
}

答案 3 :(得分:0)

拆分点上的字符串(string.split("\\.") - 你必须逃离.,因为split需要正则表达式,你必须逃避逃脱,因为你正在打字它作为Java字符串文字),然后解析并比较两个字符串中的每个组件。当你这样做时,如果组件不相等,你的答案是否正确;否则,继续下一个。如果没有下一个,则两个字符串相等。

例如,给出&#34; 1.2.3&#34;和&#34; 1.4.5&#34;,分裂将是[&#34; 1&#34;,&#34; 2&#34;,&#34; 3&#34;]和[&#34; 1&#34;,&#34; 4&#34;,&#34; 5&#34;]。因此,您首先要解析并比较索引0处的字符串;他们都是1,所以你去下一个索引。然后你解析并比较索引1处的字符串; 2&lt; 3,所以&#34; 1.2.3&#34; &LT; &#34; 1.4.5&#34;

根据您的使用情况,您可能还需要涵盖使用案例,例如,如果它们具有不同数量的组件(例如,&#34; 1.2.3&#34; vs&#34; 1.2&#34;)

只是删除点,正如其他答案所说,除非你希望2.3.4低于1.23.4,因为234&lt; 1234。