定義一個(gè)數(shù)組
1
2
3
4
5
6
7
8
9
10
11
12
|
public class charInsert { public static void main(String[] args) { // 這是字符數(shù)組 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' ; |
這里我定義了一個(gè)數(shù)組,可以看到這里 new char[9]; 我定義了9個(gè)數(shù)值空間,而只使用了7個(gè)數(shù)組空間,給了一定的余地
定義插入的字符
1
|
char c = 'w' ; |
這是要插入數(shù)組中的字符w,我們先將他定義好
打印插入之前字符排列順序
1
2
3
|
for ( int i = 0 ; i < ch.length; i++) { System.out.print(ch[i] + " " ); } |
這是輸出一下沒(méi)有插入w之前的數(shù)組值與插入后形成對(duì)比
假設(shè)插入位置
1
2
|
// index為假設(shè)字符要插入的位置 int index = ch.length; |
這里將插入位置放在數(shù)組的最大長(zhǎng)度處
找到插入位置
1
2
3
4
5
6
7
|
// 通過(guò)for循環(huán)找到要插入的位置 for ( int j = 0 ; j < ch.length; j++) { if (c < ch[j]) { index = j; break ; } } |
這里利用for循環(huán)將index放在合適的位置,char是可以用來(lái)比較的,這里用 c < ch[i]的目的就是讓這個(gè)“w”按照26字母順序排列,不能讓“w”出現(xiàn)在“x”的后面
1
2
|
// 打印要插入的位置看一下是否有問(wèn)題 // System.out.println(index); |
數(shù)組數(shù)據(jù)下移
1
2
3
4
|
// 這是很重要的一步將數(shù)組的數(shù)據(jù)進(jìn)行下移 for ( int k = ch.length - 1 ; k > index; k--) { ch[k] = ch[k - 1 ]; } |
我們這里,很多人問(wèn),length為什么要-1呢?因?yàn)閘ength是數(shù)組的長(zhǎng)度,而下標(biāo)是從0開(kāi)始,比長(zhǎng)度要少1,所以-1 ,我們先前已經(jīng)定義了index的位置,也就是插入w的位置,我們讓k>index,這是因?yàn)槲覀冎恍枰尣迦氲?ldquo;w”的后面的字母后移,前面的不需要?jiǎng)樱?/p>
移入數(shù)值
1
2
|
// 將數(shù)據(jù)下移后空出的位置就可以插入數(shù)據(jù)了 ch[index] = c; |
將c的值賦給數(shù)組index這個(gè)下標(biāo)
輸出數(shù)組
1
2
3
4
|
// 查看插入后的數(shù)組數(shù)據(jù) for ( int l = 0 ; l < ch.length; l++) { System.out.print(ch[l] + " " ); } |
利用for循環(huán)輸出數(shù)組
這個(gè)時(shí)候,我們就將“w”按照26字母順序插入進(jìn)去了
我們看看效果
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注服務(wù)器之家的更多內(nèi)容!
原文鏈接:https://blog.csdn.net/qq_60750453/article/details/120671814