问题:编写一函数求某一字符串如"ad2**cef***3e",将"*"置前,其它字符串位置不动,上面字符串返回"*****ad2cef3e",并返回"*"号个数5。
思路:
1、从数组中找到*号,放到新字符串里,同时将*号从原字符串中删除;
2、 然后将原字符串拼接到新字符串后面。
下面是代码:
public static void changePosition() {
/**
* 思路:1、从数组中找到*号,放到新字符串里,同时将*号从原字符串中删除;
* 2、 然后将原字符串拼接到新字符串后面
*/
String str = "ad2**cef***3e";
int count = 0;//记录*号总数
//遍历字符串,将其中的*号放入StringBuilder中
StringBuilder builder = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
String temp = str.substring(i, i + 1);
if (temp.equals("*")) {
builder.append(temp);
count++;
}
}
//将str字符串中的*号全部去掉
str = str.replaceAll("\\*", "");
//将去掉*号的字符串拼接到StringBuidler后面(StringBuilder中放的是*号)
builder.append(str);
System.out.println(builder.toString());
System.out.println("*号的个数是:" + count);
}