我正在编写获得2个字符串的函数。 每个字符串代表某种东西的版本。
例如:
String var1 =“1.1.1”;
String var2 =“1.1.2”;
并返回哪个字符串是较新的版本。
我的代码:
public void main(String var1, String var2) {
String[] arrayA = var1.split("\\.");
String[] arrayB = var2.split("\\.");
for (int i = 0; i < arrayA.length; i++) {
Integer number1 = Integer.parseInt(arrayA[i]);
Integer number2 = Integer.parseInt(arrayB[i]);
if (number1.equals(number2)) {
textView.setText("arrays equal");
} else if (number1 > number2) {
textView.setText("array A newer version");
break;
} else if (number2 > number1) {
textView.setText("array B newer version");
break;
}
}
到现在为止一切正常。
当数组具有不同的长度
时,我的问题就开始了(我总是在更短的时间内露营更长的阵容)
如果我露营var1 =“2.3”;到var2 =“3.3.3”;我得到了正确的答案。
但如果我露营var1 =“2.3”;到var2 =“2.3.1”;
我总是“平等”。
有任何建议如何处理吗?
答案 0 :(得分:0)
请试试这个:
public void main(String var1, String var2) {
String[] arrayA = var1.split("\\.");
String[] arrayB = var2.split("\\.");
int length = 0;
if (arrayA.length > arrayB.length) {
length = arrayA.length;
} else {
length = arrayB.length;
}
int check = 0;
for (int i = 0; i < length; i++) {
Integer number1 = 0, number2 = 0;
if (arrayA.length > i) {
number1 = Integer.parseInt(arrayA[i]);
}
if (arrayB.length > i) {
number2 = Integer.parseInt(arrayB[i]);
}
if (number1.equals(number2)) {
check = 0;
} else if (number1 > number2) {
check = 1;
break;
} else if (number2 > number1) {
check = 2;
break;
}
}
switch (check) {
case 0:
System.out.println("arrays equal");
break;
case 1:
System.out.println("array A newer version");
break;
case 2:
System.out.println("array B newer version");
break;
}
}
答案 1 :(得分:0)
URL oracle = new URL(urlString);
URLConnection yc = oracle.openConnection();
BufferedImage bufferedImage = ImageIO.read(yc.getInputStream());
int rowsData = bufferedImage.getWidth()/8;
System.out.println(rowsData);
byte[] pixel = ((DataBufferByte)bufferedImage.getRaster().getDataBuffer()).getData();
System.out.println(pixel.length);
System.out.println(Hex.encodeHex(pixel, false));
答案 2 :(得分:0)
您可以将vars添加到列表中,并使用java.util.Collections中的sort方法,它将为您进行比较。实施例
public static void main(String var1, String var2){
List<String> varList = new ArrayList<String>();
varList.add(var1);
varList.add(var2);
java.util.Collections.sort(varList);
System.out.println("designation of newer version is: " + varList.get(1));
}