java在忽略数字的同时移动字符串中的字符
我需要创建一个输入为字符串的方法,例如:asd321tre2。 输出应为:eas321dtr2。字符应向前移动一个位置,但数字应保持在同一位置。 输入:字符串s1=“abc23sd23”; 输出:String s2=“dab23cs23”
public static String revertTheString (String s) {
String helper = s.replaceAll("\\d", "");
helper = helper.substring(helper.length()-1) + helper.substring(0, helper.length()-1);
int start = 0, end = 0;
StringBuilder revert = new StringBuilder(s);
for (int i = 0; i< s.length(); i++) {
if(Character.isDigit(s.charAt(i))){
end = i;
revert = revert.replace(start, end, helper.substring(start, end));
while(Character.isDigit(s.charAt(i))){
i++;
start = i;
}
}
}
return revert.toString();
}
# 1 楼答案
您可以尝试交换第一个和最后一个字符值,如下所示
====================================================================================
====================================================================================
希望这有帮助
谢谢, 帕提班