山里蛙 发表于 2021-4-10 15:26:22

字符串比较大小问题

字符串1.0.1.8这种类型怎么比较大小
eg: 1.0.1.8期望小于1.0.1.10

菠萝叶 发表于 2021-4-16 01:46:13

将字符串通过split进行数组化,然后按照数组的长度和索引分别进行比较,就行了
比如1.0.1.8转化的数组为a
a的长度为4
a=1
a=0
a=1
a=8
1.0.1.10转化为数组b
b长度也为4
b=1
b=0
b=1
b=10

然后找到两个数组中最小长度的那个数组,按这个数组的长度进行索引
int iShortLength = a.length<=b.length?a.length:b.length;
for (int i = 0; i < iShortLength; i++) {
    if (a > b) {
      system.out.println("第一个数大");
      break;
    } else if (a < b) {
      system.out.println("第二个数大");
      break;
    }

    if (i == iShortLength - 1) {
      system.out.println("两个数一样大");
    }


}

for

包永锋 发表于 2021-4-19 15:17:50

直接去掉小数点,然后转成int做对比不可以吗

了望塔 发表于 2021-4-27 04:31:27

这是 IP 地址吗?IP 地址可以转换成无符号整数,然后就可以比较大小了。

粤不凡 发表于 2021-5-5 03:48:13

替换掉字符串中的所有点
转为int类型
比较大小
public static void main(String[] args) {
    String s1 = "1.0.1.8";
    String s2 = "1.0.1.10";
   
    s1 = s1.replaceAll("\\.", "");
    s2 = s2.replaceAll("\\.", "");
    int n1 =Integer.parseUnsignedInt(s1);
    int n2 =Integer.parseUnsignedInt(s2);
    boolean result = n2>n1;
    System.out.println(result);
}
页: [1]
查看完整版本: 字符串比较大小问题