Java编程小题
编写一个程序,给定一个字符串“aaa果4金5a”。要求:如果出现数字,把数字后面的字符替换成数字的个数个。比如这个字符串要求被替换成“aaa果金金金金aaaaa”。
代码如下:
//写一个方法,用来获取需要替换的字符串
static String getString(int index,char c) {
StringBuilder str = new StringBuilder();
//注,此处必须是 index-1 否则结果集将会多一个字符出来
for (int i = 0; i < index-1; i++) {
str.append(c);
}
return String.valueOf(str);
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入字符串:");
String inputStr = input.nextLine();
StringBuffer str = new StringBuffer(inputStr);
for (int i = 0; i < str.length(); i++) {
if (Character.isDigit(str.charAt(i))) {
//此处稍显复杂,str.charAt(i)作为个数不能直接转换为int,必须先转换为String,再转换为int。直接转换转换结果是ASCII码
String getStr = getString(Integer.parseInt((String.valueOf(str.charAt(i)))),str.charAt(i+1));
str.replace(i,i+1,getStr);
}
}
System.out.println(str);
}
结果为:
请输入字符串:
aaa果4金5a
aaa果金金金金aaaaa