

方法一:直接调用split()和parseInt()库方法#
class Solution {
public int compareVersion(String version1, String version2) {
String[] vs1 = version1.split("\\.");
String[] vs2 = version2.split("\\.");
int i = 0;
while(i < vs1.length || i < vs2.length) {
int x = 0, y = 0;
if(i < vs1.length) {
x = Integer.parseInt(vs1[i]);
}
if(i < vs2.length) {
y = Integer.parseInt(vs2[i]);
}
if (x > y) return 1;
else if (x < y) return -1;
i++;
}
return 0;
}
}
方法二:手写split()和parseInt()库方法#
class Solution {
public int compareVersion(String version1, String version2) {
String[] vs1 = splitString(version1, '.');
String[] vs2 = splitString(version2, '.');
int i = 0;
while(i < vs1.length || i < vs2.length) {
int x = 0, y = 0;
if(i < vs1.length) {
x = atoi(vs1[i]);
}
if(i < vs2.length) {
y = atoi(vs2[i]);
}
if (x > y) return 1;
else if (x < y) return -1;
i++;
}
return 0;
}
public String[] splitString(String str, char sp) {
List<String> list = new ArrayList<>();
int start = 0;
for(int i = 0; i < str.length(); ++i) {
if(str.charAt(i) == sp) {
list.add(str.substring(start, i));
start = i+1;
}
}
list.add(str.substring(start, str.length()));
return list.toArray(new String[]{});
}
public int atoi(String num) {
int r = 1;
int retVal = 0;
for(int i = num.length() - 1; i >= 0; i--) {
int x = num.charAt(i) - '0';
retVal += x * r;
r *= 10;
}
return retVal;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2021-05-28 /bin/sh -c 的作用
2020-05-28 word怎么删除页眉横线
2019-05-28 IntelliJ IDEA详细配置和使用(Java版)