public static void main(String args[]) {
String str = "**a**b**d*";
char chars[] = str.toCharArray();
int p1 = -1;
for (int i = chars.length - 1; i >= 0; i--) {
if (chars[i] != '*' && p1 == -1)
continue;
else if (chars[i] == '*' && p1 == -1) {
p1 = i;
} else if (chars[i] != '*' && p1 != -1) {
char temp = chars[p1];
chars[p1] = chars[i];
chars[i] = temp;
p1--;
}
}
System.out.println(String.valueOf(chars));
}
输入形式:**a**b**d*
输出结果:*******abd
这道题目如果使用C语言指针来实现,会更简单,不需要将字符串转换成为字符数组。
题目的陷阱在于,千万不要去新生成一个字符串,用来拼接字符,最后再进行合并,这样会减分。