如何在每个数字字符串前添加0?

时间:2017-05-13 19:03:29

标签: java string char jframe

如何在每个数字前加0?我的意思是1到01等 我试图添加像

这样的ifs
if(c >='A' && c<= 'I')
    str = "0"+str;

但它只是在abcd转换为00001234而不是01020304之类的所有内容前加0。

这是我的代码。

    String A[] = new String[size];
    for (int i = 0; i < size; i++) {
        A[i] = jList1.getModel().getElementAt(i);
        String[] Text = A[i].split("");
        String s = jList1.getModel().getElementAt(i);
        String str = ("");
        for (int z = 0; z < Text.length; z++) {
            for (int y = 0; y < Text[z].length(); y = y + 1) {
                char c = s.charAt(z);
                if (c >= 'A' && c <= 'Z') {
                    str += c - 'A' + 1;

                } else if (c >= 'a' && c <= 'z') {
                    str += c - 'a' + 1;

                } else {
                    str += c;
                }
            }
            str = str + "";
        }
    }

5 个答案:

答案 0 :(得分:0)

    String str = "abcd-zzz-AAA";

    StringBuilder sb = new StringBuilder();

    for (int i = 0; i < str.length(); i++) {
        char ch = str.toLowerCase().charAt(i);
        if (ch >= 'a' && ch <= 'z') {
            sb.append('0');
            sb.append(ch - 'a' + 1);
        } else {
            sb.append(ch);
        }
    }

结果:abcd-zzz-AAA - &gt; 01020304-026026026-010101

最终修复:-)

答案 1 :(得分:0)

执行此操作的一种方法是在Java 8中使用StringJoiner

String s = "abcdABCD";

s = s.chars()
     .mapToObj(i -> Integer.toString((i >= 'a' && i <= 'z' ? i - 'a' : i - 'A') + 1))
     .collect(Collectors.joining("0", "0", "")));

System.out.println(s);

>> 0102030401020304

答案 2 :(得分:0)

使用String#chars获取其角色的流,然后为每个角色做你想要的操作。

public class Example {

    public static void main(String[] args) {
        String s = "aBcd1xYz";
        s.chars().forEach(c -> {
            if (c >= 'a' && c <= 'z')
                System.out.print("0" + (c - 'a' + 1));
            else if (c >= 'A' && c <= 'Z')
                System.out.print("0" + (c - 'A' + 1));
            else
                System.out.print(c);
        });
    }
}

输出继电器:

  

0102030449024025026

答案 3 :(得分:0)

这对我有用

public String addZero(int number)
{
    return number<=9?"0"+number:String.valueOf(number);
}``

答案 4 :(得分:-1)

您可以使用String.format在单个数字前面添加零。

System.out.println(String.format("%02d",1));
System.out.println(String.format("%02d",999));

第一行将打印01,第二行打印999,左侧没有零填充。

填充零,长度为2,d表示整数。

我希望这会有所帮助。