问题描述
假设打印1~100的数字中 判断2个相邻数字不能出现 (相邻数字:比如1,2 3,4 5,6等 )我用indexOf弄了半天没效果 请赐教! 问题补充:没有逗号 怎么把一个串数字分割成数组langshao 写道
解决方案
引用其实就是自己想的一个问题 打印1000以内的数字 不允许有相邻数字出现 比如10 101 12 21等 int N = 100;Set<Integer> result = new HashSet<Integer>(N);Random random = new Random();while (result.size() < N) {int i = random.nextInt(1000) + 1; // 1 - 1000 的随机数if (!(result.contains(i + 1) || result.contains(i - 1) || result.contains(i))) {// 集合中不存在 相差为1的数result.add(i);}}System.out.println(result);
解决方案二:
额,这种问题。。。还真是幼稚。
解决方案三:
到底是数值还是字符串?如果是数值就简单了字符串就麻烦点还请楼主清楚点数值的话: (numb1 - bumb2 = 1 || numb1 - numb2 = -1) return true;字符串:还得楼主明示
解决方案四:
引用这样是一个方法 我主要是想判断一个组数字 不能有相邻的数字出现 比如23 和 32 以楼下这种思路 要做大于1 小于1的判断 能用INDEXOF做这个么?不明白一组是什么。 给出一些输入样例和输出样例看看。
解决方案五:
如果没有分隔符,你怎么知道56表示的是五十六还是五和六,这不是搞笑么?
解决方案六:
数字是连在一起的:public static void main(String[] args) {System.out.println(test("1356"));}private static boolean test(String string) {char[] cs = string.toCharArray();int[] array = new int[cs.length];for (int i = 0; i < cs.length; i++) {array[i] = Integer.parseInt(String.valueOf(cs[i]));if (i > 0 && Math.abs(array[i] - array[i - 1]) == 1) {return false;}}return true;}如果是空格,则用之前的把","改成" "。
解决方案七:
引用没有逗号 怎么把一个串数字分割成数组数字是一位数字,还是有空格?
解决方案八:
这一些数字是以","分隔吗?public static void main(String[] args) {System.out.println(test("1,2"));}private static boolean test(String string) {String[] strs = string.split(",");int[] array = new int[strs.length];for (int i = 0; i < strs.length; i++) {array[i] = Integer.parseInt(strs[i]);if (i > 0 && Math.abs(array[i] - array[i - 1]) == 1) {return false;}}return true;}