小学生级别Java笔记_向有序字符数组中插入一个字符,并保持数组有序_2019/7/22

一共5个步骤,完成有序插入:
(1)用Arrays.copyOf新建长度+1的数组,作为即将插入元素的数组
(2)获取新元素值
(3)通过比较元素值大小,查找新元素将要插入的下标index
(4)下标为chars1.length-2~index的元素依次右移
(5)将新元素插入到index下标

	Scanner input = new Scanner(System.in);
	char[] chars = {'a','c','g','n','x'};//原数组
	char[] chars1 = Arrays.copyOf(chars, chars.length+1);//新数组(长度+1)
	
	/*
	 * Scanner对象只能用.next()从控制台获取一个String,没有.nextChar()方法
	 * 故用以下两种办法,获取字符串的第一个字符:
	 * 字符串.toCharArray()[0]
	 * 字符串.charAt(0)
	 */
	System.out.print("请输入一个字符");
	//char newChar = input.nextLine().toCharArray()[0];
	char newChar = input.nextLine().charAt(0);
	
	/*
	 * 通过比较大小,查找字符将要插入的下标index
	 */
	int index = chars1.length-1;
	for(int i=0;i<chars1.length-1;i++){
		if(newChar < chars1[i]){
			index = i;
			break;
		}
	}
	
	//按chars1.length-2~index的顺序,依次将元素右移
	for(int i=chars1.length-2;i>=index;i--){
		chars1[i+1] = chars1[i];
	}
	
	//移动后空出目标位置index,将新元素插入
	chars1[index] = newChar;
	
	System.out.println("原数组:"+Arrays.toString(chars));
	System.out.println("新插入的字符:"+newChar);
	System.out.println("插入下标:"+index);
	System.out.println("插入后的数组:"+Arrays.toString(chars1));
}
发布了33 篇原创文章 · 获赞 4 · 访问量 2177

猜你喜欢

转载自blog.csdn.net/weixin_44981510/article/details/96828062