如何在每个数字前加0?我的意思是1到01等 我试图添加像
这样的ifsif(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 + "";
}
}
答案 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表示整数。
我希望这会有所帮助。