步骤:
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;
}
}
}