据说是中国电信的java编程面试题,自已写了个类。
处理短信内容规则:
俩个字符串(String srcString,String destString)要求把destString字符串按符分割,并且每俩个符分割 ,并且每俩个符分割,并且每俩个输出一个,,,后如果是数字的话分为一位和俩位用srcString来替换;
举例说明:
srcString:10,20,30,40(,为分割符)
destString:您的余额为:1(或01)元,本月应交1(或01)元,本月应交1(或01)元,本月应交2(或02)元,下月交:2(或02)元,下月交:2(或02)元,下月交:3(或03)元,结余为:3(或03)元,结余为:3(或03)元,结余为:KaTeX parse error: Can't use function '$' in math mode at position 32: … 您的余额为:10元,本月应交$̲20元,下月交:$30元,结余…40元。
import java.util. * ;
public class splitString
… {
publicvoidsplit(Stringsrc,Stringdes)
…{
StringTokenizertoken=newStringTokenizer(src,“,”);
inttotal=token.countTokens();
intj=0;
Strings[]=newString[total];
while(token.hasMoreTokens())
…{
s[j++]=token.nextToken();
}
Stringresult=“”;
Stringdest=des+“@”;
intlen=dest.length();
inti=0,k=0;
chartemp;
while((temp=dest.charAt(i))!=‘@’)
…{
if(temp==‘KaTeX parse error: Expected '}', got 'EOF' at end of input: …charAt(i+1)\=='’)
…{
result=result+‘$’;
i=i+2;
}
elseif(Character.isDigit(dest.charAt(i+1))==true)//Character.isDigit(charc)判断字符是否为数字
…{
if(Character.isDigit(dest.charAt(i+2))==true)//String.charAt(inti)获得i位置的字符
…{
result=result+s[k++];
i=i+3;
}
else
…{
result=result+s[k++];
i=i+2;
}
}
else
…{
result=result+temp;
i++;
}
}
elseif(Character.isDigit(temp)==true)//位置指针回退
…{
i–;
}
else
…{
result=result+temp;
i++;
}
}
System.out.println(result);
}
publicsplitString()
…{}
publicstaticvoidmain(String[]args)
…{
splitStringtest=newsplitString();
StringsrcString=“10,20,30,40,50”;
StringdestString=“您的余额为:1元,本月应交1元,本月应交1元,本月应交2元,下月交:2元,下月交:2元,下月交:3元,结余为:3元,结余为:3元,结余为:4元,测试为:4元,测试为:4元,测试为:$$$5元”;
test.split(srcString,destString);
}
}
]