网站制作 杭州/优化大师官网
步骤:
1.通过"."进行分割字符串
2.先看两个字符串的前半部分是否相等
3.如果相等,那么有三种情况:字符串1长于2,2长于1,1等于2
如果是长于的情况,比如1.2.0是等于1.2的,所以对于长于的部分要看是否大于0
其他的长于情况,比如1.2.1>1.2
4.如果不相等 字符串二者相减:diff>0?1:-1
注意:
1.使用public static int parseLong(String s) throws NumberFormatException进行字符串到长整型的转换
2.由于字符串的大小未知,所以diff定义为long
3.转义字符是\\,不是//
4. 0代表相等
1代表左边大
-1代表右边大
Java代码:
import java.util.Scanner;public class CompareVersion {public static void main(String[] args){Scanner sc=new Scanner(System.in);String s1=sc.nextLine();String s2=sc.nextLine();System.out.print(compareVersion(s1,s2));}public static int compareVersion(String v1,String v2){if(v1.equals(v2)){return 0;}String[] version1=v1.split("\\.");String[] version2=v2.split("\\.");int index=0;int minLen=Math.min(version1.length, version2.length);long diff=0;while(index<minLen&&(diff=Long.parseLong(version1[index])-Long.parseLong(version2[index]))==0)index++;if(diff==0){for(int i=index;i<version1.length;i++)if(Long.parseLong(version1[i])>0)return 1;for(int i=index;i<version2.length;i++)if(Long.parseLong(version2[i])>0)return -1;return 0;}else {return diff>0?1:-1;}}
}
https://blog.csdn.net/admans/article/details/81865652