有1,2,2,3,4,5这6个数字,用Java写一个main函数,打印出所有不同的排列,如:512234 要求: '4'不能在第三位, '3'与'5'不能相连
public class Test {
public static void main(String[] args) {
for (int i = 122345; i < 512234; i++) {
if (fun(String.valueOf(i))) {
System.out.println(i);
}
}
}
public static boolean fun(String str) {
// 有1,2,2,3,4,5这6个数字,用Java写一个main函数,打印出所有不同的排列,如:512234
// 要求: '4'不能在第三位, '3'与'5'不能相连
if (str.charAt(2) == '4') {
return false;
}
if(str.indexOf("35")>=0 || str.indexOf("53")>=0){
return false;
}
return true;
}
}
这里使用到了indexOf 这个方法,这个方法可以传入字符 字符串 。传入字符是int类型,也就是字符的ascii码值,字符串的话返回的是第一个出现这个字符串的位置下标。
字符串是两个连续的字符的时候,返回的下标是第一个字符的位置。这里切记!