小白教程

 找回密码
 立即注册
查看: 5723|回复: 4

字符串比较大小问题

[复制链接]

1

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2021-4-10 15:26:22 | 显示全部楼层 |阅读模式
字符串1.0.1.8这种类型怎么比较大小
eg: 1.0.1.8期望小于1.0.1.10
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-4-16 01:46:13 | 显示全部楼层
将字符串通过split进行数组化,然后按照数组的长度和索引分别进行比较,就行了
比如1.0.1.8转化的数组为a
a的长度为4
a[0]=1
a[1]=0
a[2]=1
a[3]=8
1.0.1.10转化为数组b
b长度也为4
b[0]=1
b[1]=0
b[2]=1
b[3]=10

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

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


}

for
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-4-19 15:17:50 | 显示全部楼层
直接去掉小数点,然后转成int做对比不可以吗
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-4-27 04:31:27 | 显示全部楼层
这是 IP 地址吗?IP 地址可以转换成无符号整数,然后就可以比较大小了。
回复

使用道具 举报

0

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2021-5-5 03:48:13 | 显示全部楼层
替换掉字符串中的所有点
转为int类型
比较大小
  1. public static void main(String[] args) {
  2.     String s1 = "1.0.1.8";
  3.     String s2 = "1.0.1.10";
  4.      
  5.     s1 = s1.replaceAll("\\.", "");
  6.     s2 = s2.replaceAll("\\.", "");
  7.     int n1 =Integer.parseUnsignedInt(s1);
  8.     int n2 =Integer.parseUnsignedInt(s2);
  9.     boolean result = n2>n1;
  10.     System.out.println(result);
  11. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )

GMT+8, 2024-9-20 14:48 , Processed in 0.047436 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表