用java编程,实现:从键盘输入一个字符串,将字符串中遇到的数字改成其数值个它后面的那个字母,比如

用java编程,实现:从键盘输入一个字符串,将字符串中遇到的数字改成其数值个它后面的那个字母,比如at2g 改写成atggg。求各位大神帮忙

那如果最后一个是数字该怎么办?

import java.util.Scanner;

public class _20140919 {

/**
 * @param args
 */
public static void main(String[] args) {
//输入字符串
String str=new Scanner(System.in).nextLine().toString();
//将字符串转成字符数组
char[] charArr=str.toCharArray();
//定义一个新的字符串存储最后的结果
String newStr="";

for(int i=0; i<charArr.length-1; i++)
{
//字符为数字时
if(Character.isDigit(charArr[i]))
{
for(int j=0; j<Integer.parseInt(charArr[i]+""); j++)
{
newStr+=charArr[i+1];
}
}else{
newStr+=charArr[i];
}
}

//打印最后结果
System.out.println(newStr);
}

}

追问

不做处理啊

追答

我以上代码就是按照最后一个是数字时不做处理写的

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-04
从键盘取出字符!求len长度!循环截取字符串获取字符!.存入数组或其他集合中!在进行判断..本回答被网友采纳
第2个回答  2014-09-19
把字符串toCharArray进行char[]数组遍历,获取数字前面的字母的ASCll码值,然后按照数字的值循环在前面ASCLL值的基础上+1,结束后整合一个新的char[],然后new String 输出就好了
第3个回答  2014-09-19
很简单追问

不好意思,我请的是大神们,不是您

追答import java.util.Scanner;
public class Demo {
 public static void main(String[] args) {
  Scanner scan = new Scanner(System.in);
  String s="";
  for(;true;){
   System.out.println("---这是一个将输入字串中数字替换为其后字母的一个程序,结束命令:-e\n请输入待操作字符串:");
   s=scan.nextLine();
   if(s.equals("-e"))break;
   System.out.println("你输入的字符串为:"+s);
   
   //待处理转换为字符数组,并遍历数组
   char[] str=s.toCharArray();
   for(int i=str.length-1;i>=0;i--){
    //判断元素是否为数字
    if(Character.isDigit(str[i])){
     //判断是否为末位
     if(i!=str.length-1){
      str[i]=str[i+1];
     }
     continue;
    }
    continue;
   }
   String newstr=new String(str);
   System.out.println("转换后的字符串为:"+newstr);
   }
   //关闭输入流,准备退出
  scan.close();
  System.out.println("程序已退出。");
  
 }
}

你看我这个行不?

相似回答