字符串中将*号置于前方,字符和数字置于后方

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语言指针来实现,会更简单,不需要将字符串转换成为字符数组。

 

题目的陷阱在于,千万不要去新生成一个字符串,用来拼接字符,最后再进行合并,这样会减分。

你可能感兴趣的:(字符串)