特殊字符而不是字母

时间:2015-08-11 13:12:00

标签: java

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;

1 个答案:

答案 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(你在做什么)的意义上帮助你,所以它在这里完全没用。