目录 定义一个数组 定义插入的字符 打印插入之前字符排列顺序 假设插入位置 找到插入位置 数组数据下移 移入数值 输出数组 总结 定义一个数组 public class charInsert { public static void m
目录
- 定义一个数组
- 定义插入的字符
- 打印插入之前字符排列顺序
- 假设插入位置
- 找到插入位置
- 数组数据下移
- 移入数值
- 输出数组
- 总结
定义一个数组
public class charInsert { public static void main(String[] args) { // 这是字符数组 char[] ch = new char[9]; ch[0] = 'a'; ch[1] = 'b'; ch[2] = 'c'; ch[3] = 'f'; ch[4] = 'g'; ch[5] = 'i'; ch[6] = 'l'; ch[7] = 'z';
这里我定义了一个数组,可以看到这里 new char[9]; 我定义了9个数值空间,而只使用了7个数组空间,给了一定的余地
定义插入的字符
char c = 'w';
这是要插入数组中的字符w,我们先将他定义好
打印插入之前字符排列顺序
for (int i = 0; i < ch.length; i++) { System.out.print(ch[i] + " "); }
这是输出一下没有插入w之前的数组值与插入后形成对比
假设插入位置
// index为假设字符要插入的位置 int index = ch.length;
这里将插入位置放在数组的最大长度处
找到插入位置
// 通过for循环找到要插入的位置 for (int j = 0; j < ch.length; j++) { if (c < ch[j]) { index = j; break; } }
这里利用for循环将index放在合适的位置,char是可以用来比较的,这里用 c < ch[i]的目的就是让这个“w”按照26字母顺序排列,不能让“w”出现在“x”的后面
// 打印要插入的位置看一下是否有问题 // System.out.println(index);
数组数据下移
// 这是很重要的一步将数组的数据进行下移 for (int k = ch.length - 1; k > index; k--) { ch[k] = ch[k - 1]; }
我们这里,很多人问,length为什么要-1呢?因为length是数组的长度,而下标是从0开始,比长度要少1,所以-1 ,我们先前已经定义了index的位置,也就是插入w的位置,我们让k>index,这是因为我们只需要让插入的“w”的后面的字母后移,前面的不需要动!
移入数值
// 将数据下移后空出的位置就可以插入数据了 ch[index] = c;
将c的值赋给数组index这个下标
输出数组
// 查看插入后的数组数据 for (int l = 0; l < ch.length; l++) { System.out.print(ch[l] + " "); }
利用for循环输出数组
这个时候,我们就将“w”按照26字母顺序插入进去了
我们看看效果
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注自由互联的更多内容!