问题:编写一函数求某一字符串如"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); }