给定一个字符串,字符串中的*可以替换成0或1,输出所有可能的结果 例如,输入: abc*d*e 输出 abc0d0e abc0d1e abc1d0e abc1d1e 用递归来做比较简单 import java.util.Scanner; public class StrReplace { public static void main(String[] args) { StrReplace strReplace = new StrReplace(); Scanner scanner = new Scanner(System.in); strReplace.replace(scanner.nextLine().toCharArray(), 0); scanner.close(); } public void replace(char[] chars, int pos) { if (pos == chars.length) { System.out.println(new String(chars)); } else { while (pos < chars.length && chars[pos] != '*') { pos++; } if (pos == chars.length) { System.out.println(new String(chars)); } else { chars[pos] = '0'; reRank(chars, pos + 1); chars[pos] = '1'; reRank(chars, pos + 1); chars[pos] = '*'; } } } }