所以我有这个脚本:
class input {
public static void main (String[] args){
String hexa;
hexa = "68101005200B10034D201A10162014100D17060520100F06200E101306200409020D0D060F0806200A0F201A101613200B1016130F061A4F2075090A1420100F06201802142007020A130D1A200602141A20151020041302040C4F207802140F4815200A156020525359200C061A14200A1420022012160A150620140E020D0D200C061A14110204064D201410200A1520140910160D050F481520090217062015020C060F201A101620151010200D100F0820151020050604131A11152015090A14200E0614140208064F2078060D0D2005100F064D201A1016132014100D16150A100F200A14200F050311030210130A0D10074F";
int pituus;
pituus = hexa.length();
int i = 1;
char luku;
char luku2;
int asc;
String pari;
String koodi;
StringBuilder sb2 = new StringBuilder();
StringBuilder sb = new StringBuilder();
StringBuilder ASCII = new StringBuilder();
for(int a = 0;a <30;a++){
if (a > 0){
hexa = sb.toString();
}while(i < pituus){
luku = hexa.charAt(i);
luku2 = hexa.charAt (i-1);
luku++;
if(luku == 'G'){
luku = '0';
luku2++;
}
else if(luku == ':')
luku = 'A';
if (luku2 == '8')
luku2 = '0';
sb2.append(luku2);
sb2.append(luku);
pari = sb2.toString();
sb2.setLength(0);
asc = Integer.parseInt(pari,16);
ASCII.append((char)asc);
sb.append(luku2);
sb.append(luku);
i+=2;
}
koodi = ASCII.toString();
System.out.printf("All hex pair values increased by: %d\n%s\n======================\n%s\n",a+1,hexa,koodi);
}
}
}
EDIT2:现在,在此版本中,hexa就在程序执行之前,进入while循环。在while循环中,程序使用hexa的旧值。为什么会这样,以及如何“更新” while循环?
我认为内部循环永远不会执行。
由于最初pituus
是0
和不执行内环和sb.toString();
是""
和pituus
是0
因为这个内循环的再次,从来没有被执行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句