首页 > 其他分享 >数组

数组

时间:2023-05-07 22:32:12浏览次数:31  
标签:数组 student offset ARRAY root centos8

一、声明数组

declare -a ARRAY_NAME#普通数组可以不事先声明,直接使用

declare -A ARRAY_NAME#关联数组必须先声明,再使用

二、数组赋值

1、一次只赋值一个元素

weekdays[0]="Sunday"

weekdays[4]="Thursday

2、一次赋值全部元素

ARRAY_NAME=("VAL1" "VAL2" "VAL3" ...)

范例:

title=("ceo" "coo" "cto")

num=({0..10})

alpha=({a..g})

file=( *.sh )

3、只赋值特定元素

ARRAY_NAME=([0]="VAL1" [3]="VAL2" ...)

4、交互式赋值

read -a ARRAY

三、数组查看

1、显示所有数组

declare  -a

2、引用数组

${ARRAY_NAME[INDEX]}

#如果省略[INDEX]表示引用下标为0的元素

范例:

[root@centos8 ~]#declare -a title=([0]="ceo" [1]="coo" [2]="cto")

[root@centos8 ~]#echo ${title[1]}

coo

[root@centos8 ~]#echo ${title}、

ceo

[root@centos8 ~]#echo ${title[2]}

cto

[root@centos8 ~]#echo ${title[3]

3、引用所有的数组

${ARRAY_NAME[*]}

${ARRAY_NAME[@]}

4、显示数组的长度,及数组中元素的个数

${#ARRAY_NAME[*]}

${#ARRAY_NAME[@]}

四、删除数组

1、删除数组中的某个元素

[root@centos8 ~]#echo ${title[*]}ceo coo cto

[root@centos8 ~]#unset title[1]

[root@centos8 ~]#echo ${title[*]}

ceo cto

2、删除整个数组

root@centos8 ~]#unset title

[root@centos8 ~]#echo ${title[*]}

[root@centos8 ~]#


五、数组数据处理

 数组切片

${ARRAY[@]:offset:number}

offset #要跳过的元素个数

number #要取出的元素个数

#取偏移量之后的所有元素

{ARRAY[@]:offset}

范例:

[root@centos8 ~]#num=({0..10})

[root@centos8 ~]#echo ${num[*]:2:3}

2 3 4

[root@centos8 ~]#echo ${num[*]:6}

6 7 8 9 10

向数组中追加元素:

ARRAY[${#ARRAY[*]}]=value

ARRAY[${#ARRAY[@]}]=value

范例:

[root@centos8 ~]#num[${#num[@]}]=11

[root@centos8 ~]#echo ${#num[@]}

12

[root@centos8 ~]#echo ${num[@]}

0 1 2 3 4 5 6 7 8 9 10 11


关联数组:

declare -A ARRAY_NAME

ARRAY_NAME=([idx_name1]='val1' [idx_name2]='val2‘...)

注意:关联数组必须先声明后调用

范例:

[root@centos8 ~]#declare -A student

[root@centos8 ~]#student[name1]=lijun

[root@centos8 ~]#student[name2]=ziqing

[root@centos8 ~]#student[age1]=18

[root@centos8 ~]#student[age2]=16

[root@centos8 ~]#student[gender1]=m

[root@centos8 ~]#student[city1]=nanjing

[root@centos8 ~]#student[gender2]=f

[root@centos8 ~]#student[city2]=anhui

[root@centos8 ~]#student[gender2]=m

[root@centos8 ~]#student[name50]=alice

[root@centos8 ~]#student[name3]=tom

[root@centos8 ~]#for i in {1..50};do echo student[name$i]=${student[name$i]};
done

六、字符串切片

#返回字符串变量var的长度

${#var}#返回字符串变量var中从第offset个字符后(不包括第offset个字符)的字符开始,到最后的部分,

offset的取值在0 到 ${#var}-1 之间(bash4.2后,允许为负值)

${var:offset}#返回字符串变量var中从第offset个字符后(不包括第offset个字符)的字符开始,长度为number的部分

${var:offset:number}#取字符串的最右侧几个字符,取字符串的最右侧几个字符, 注意:冒号后必须有一空白字符

${var: -length}#从最左侧跳过offset字符,一直向右取到距离最右侧lengh个字符之前的内容,即:掐头去尾

${var:offset:-length}#先从最右侧向左取到length个字符开始,再向右取到距离最右侧offset个字符之间的内容,注意:-

length前空格

${var: -length:-offset}



标签:数组,student,offset,ARRAY,root,centos8
From: https://blog.51cto.com/gttwangyanjun/6252633

相关文章

  • Arrays:点燃你的数组操作技巧的隐秘武器
    前言  数组在Java中是一种常用的数据结构,用于存储和操作大量数据。但是在处理数组中的数据,可能会变得复杂和繁琐。Arrays是我们在处理数组时的一把利器。它提供了丰富的方法和功能,使得数组操作变得更加简单、高效和可靠。无论是排序、搜索、比较还是复制,Arrays都能够......
  • NOI / 1.8编程基础之多维数组
    13:图像模糊处理 1.描述给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理:1.四周最外侧的像素点灰度值不变;2.中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。2.输入第一行包含两个整数n和m,表示图像包含......
  • 【C#】数组深拷贝
    数组是引用类型,元素保存在堆上,栈上保存的是地址。1.Buffer.BlockCopyint[]arrold=newint[100000];int[]arrnew=newint[100000];//foreach不能修改遍历集合的元素内容for(inti=0;i<arrold.Length;++i){arrold[i]=i;}Stopwatchsw=newStopwatch(......
  • LeetCode 349. 两个数组的交集
    题目链接:LeetCode349.两个数组的交集题意:本题题意是让我们找出两个数组中的交集,注意交集中不能出现重复元素解题思路:思路比较常规,先遍历数组num1,对于每个首次出现的数字,对应位置上的数值+1,再遍历数组num2,判断当前数字是否在num1中出现,如果出现,就加入到结果集中完整代码如......
  • 【web 开发基础】PHP 中数组的定义和使用
    前言在PHP中定义数组非常灵活。与其他许多编程语言中的数组不同,PHP不需要在创建数组时指定数组的大小和类型,甚至无需再使用数组前先行声明,也可以在同一个数组中存储任何类型的数据,PHP支持一维和多维数组,可以由用户创建,也可以由一些特定的数据库处理函数从数据库查询中生成数组,或者......
  • 【二分查找】LeetCode 33. 搜索旋转排序数组思路
    题目链接33.搜索旋转排序数组思路思路都在注释里代码classSolution{publicintsearch(int[]nums,inttarget){intlen=nums.length;if(len==0){return-1;}intleft=0,right=len-1;//1.......
  • 【二分查找】LeetCode 540. 有序数组中的单一元素
    题目链接540.有序数组中的单一元素思路假如不存在单个的元素,那么在奇数位置上总是成对元素的第一个元素,偶数位置上总是成对元素的第二个元素,但是如果加入了单个元素呢?我们可以看到在单个元素的左边这个特点没有变化,但是在单个元素的右边,奇数位置上总是成对元素的第二个元素,偶......
  • 2023-05-06:X轴上有一些机器人和工厂。给你一个整数数组robot,其中robot[i]是第i个机器
    2023-05-06:X轴上有一些机器人和工厂。给你一个整数数组robot,其中robot[i]是第i个机器人的位置再给你一个二维整数数组factory,其中factory[j]=[positionj,limitj]表示第j个工厂的位置在positionj,且第j个工厂最多可以修理limitj个机器人每个机器人所在的位置互不相......
  • 69. 数组中数值和下标相等的元素
    classSolution{public:intgetNumberSameAsIndex(vector<int>&nums){intn=nums.size();intl=0,r=n-1;while(l<r){intmid=l+r>>1;if(nums[mid]<mid)l=mid+1;......
  • 计算机系统基础----特殊类型(数组,结构体 ,联合体)的分配
    《数组》《数组的分配与访问》首先我们要知道在8086中内存的结构如图: 可见一个单元格有8bit(1B) 对于指针类型数据占4字节,char占1个字节,int占4个字节,short占2个字节,double占8个字节 当我们访问数组中的数据时是要访存的,当要访存时,我们只知道数组的......