JAVA一道笔试题???

来源:百度知道 编辑:UC知道 时间:2024/05/16 00:53:43
一个字符串"xy5dew_dp6n",如果是数字的话,后面的字符循环数字次,如果是"_",用"@"替换,最终结果是"xy5dddddew@dp6nnnnnn"其他不变,怎么求解?
公司的一道上机笔试题!希望大侠给具体代码让我研究研究,还有最后一位如果是数怎么处理

遍的不是很好,参考一下巴。如最后是数字的话则什么也不做,因为这个数字后面没有字母,不知道理解正确吗?

三组测试串如下
xy5dew_dp6n
xydddddew@dpnnnnnn
xy55dew_dp6n
xydddddew@dpnnnnnn
x0y5dew_dp6n8
xdddddew@dpnnnnnn

/**
* 输入一个字符串,如果是数字的话,后面的字符循环数字次,
* 如果是"_",用"@"替换?

*/
public String convertStr(String str){
String ret=""; //返回字符串
System.out.println(str);
if(str!=null && str.length()!=0){ //判断输入字符串不是空串
int len=str.length(); //输入字符串长度
int iloop=1; //字符循环次数,缺省1
for(int i=0;i<len;i++){
char ch=str.charAt(i); //取当前位置的字符
if(ch=='_') ch='@'; //如果自负为_,则用@替代
char[] arrch=new char[1];
arrch[0]=ch;

if(Character.isDigit(ch)){ //如果字符为数字,则转换为循环次数
try{
iloop=Integer.parseInt(new String(arrch));