小学生级别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));
}
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值