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