public class sixdighall {
public static char k = 65;
public static void main(String args[]) {
String userin = "111111";
int max = 180;
String allofem = "";
int a[] = { 01, 02, 03, 04, 05, 12, 21 };
for (int k1 = 0; k1 < a.length; k1++) {
for (int i = 0; i < max; i++) {
if (i < 100) {
String num = "" + String.format("%02d", i);
String added = userin + a[k1] + num;
allofem = allofem + added;
}
if (i >= 100) {
int b = 0;
while (b < 10) {
String added = userin + a[k1] + k + b;
allofem = allofem + added;
b++;
}
}
k++;
}
}
System.out.println(allofem);
}
}
我希望订单采用以下格式
结果应为
1111110100
1111110101
1111110102
.
.
.
.
1111110199
11111101A0
11111101A1'
.
.
.
.
.
11111101B1
但我得到的是特殊字符而不是字母
111111100 111111101
.
.
.
.
111111199 1111111¥ 01111111¥
此程序打印数字直到最大 请帮帮我们
虚拟文字 &#34;没有更多的话要说,只需添加一些文字&#34;
答案 0 :(得分:1)
问题是代码底部的k++
。
当程序进入i >= 100
时,您的变量已经达到值165并且不再是65(或A)。 char值165及以上转换为那些特殊字符。
您的代码应该更像:
public static void main(String args[]) {
String userin = "111111";
int max = 180;
String allofem = "";
int a[] = {1, 2, 3, 4, 5, 12, 21};
for (int k1 = 0; k1 < a.length; k1++) {
for (int i = 0; i < max; i++) {
if (i < 100) {
String num = "" + String.format("%02d", i);
String added = userin + a[k1] + num;
allofem = allofem + added;
}
if (i >= 100) {
int b = 0;
while (b < 10) {
String added = userin + a[k1] + k + b;
allofem = allofem + added;
b++;
}
k++;
}
}
}
System.out.println(allofem);
}
但是这只会在稍后提出问题。 目前还不清楚你想要达到什么目标,因此不可能在这里提供完整的解决方案。
旁注:
int a[] = { 01, 02, 03, 04, 05, 12, 21 };
非常危险,因为01,02,03,04,05是八进制数。有人可能会错过这个。他们也没有在String Concatination(你在做什么)的意义上帮助你,所以它在这里完全没用。