JAVA一道笔试题???

2024-11-21 22:00:29
推荐回答(3个)
回答1:

呵呵,问题很简单吗?

回答2:

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

三组测试串如下
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 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));
}catch(Exception e){
e.printStackTrace();
}
}else if(Character.isLetter(ch)){ //如果是字母,则循环现实
char[] tmp=new char[iloop];
for(int j=0;j tmp[j]=ch;
}
ret=ret.concat(new String(tmp));
iloop=1; //重设置为1
}else{
ret=ret.concat(new String(arrch));
iloop=1; //重设置为1
}
}
}
return ret;
}

回答3:

由于是有次数的循环要用for循环
用string的提取方法把数字先提出来存在变量中
在用charat的方法把数字后的字母也提取出来
放在for循环中去循环 呵呵