/**
* @author Dongxie
* 需求:
* 给定一个含字母,数字的不规则字符串,在该字符的数字和字母之间
* 加上下划线
*/
public class Demo1 {
public static void main(String[] args) {
//定义字符串
String s = "ABC123bCa567Qwe23";
//将字符串转换成StringBuffer类型
StringBuffer sb = new StringBuffer(s);
//对StringBuffer进行遍历
for (int i = 0; i < sb.length()-1; i++) {
//若相邻的两个字符类型不符合规则,则在它们中间插入下划线
if ('a'<=sb.charAt(i) && 'z'>=sb.charAt(i) ||
'A'<=sb.charAt(i) && 'Z'>=sb.charAt(i)) {
if ('0'<=sb.charAt(i+1) && '9'>=sb.charAt(i+1)) {
sb.insert(i+1, '_');
}
}
else if ('0'<=sb.charAt(i)&& '9'>=sb.charAt(i)) {
if ('a'<=sb.charAt(i+1) && 'z'>=sb.charAt(i+1) ||
'A'<=sb.charAt(i+1) && 'Z'>=sb.charAt(i+1)) {
sb.insert(i+1, '_');
}
}
}
String string = sb.toString();
System.out.println(string);
}
}
大家看看有没有还有可以优化的地方。
|
|