shell 字符串转数组

本文介绍了一段Shell脚本,该脚本能够解析并遍历由多种分隔符(如'T'和',')分隔的多级字符串。通过将输入字符串分解为多个部分,并对每个部分进行迭代,最终输出所有独立的子字符串。示例展示了如何调用此脚本并获取预期输出。

test.sh脚本如下:

apps="${1}"  
#按“T”分隔  
arr=(${apps//T/ })  
for app in ${arr[@]}  
do   
  apps2="${app}"  
  #按“,”分隔  
  arr2=(${apps2//,/ })  
  for app2 in ${arr2[@]}  
  do  
     echo "${app2}"  
  done  
done  

调用并输出:

sh test.sh 1,2T11,12T111,112  
  
1  
2  
11  
12  
111  
112  
字符串换为数组是编程中常见的需求之一,不同编程语言提供了不同的方法来实现这一功能。以下是几种主流编程语言中将字符串换为数组的实现方式: ### JavaScript 在JavaScript中,可以使用以下方法将字符串换为数组: - **`split()` 方法**:这是最常用的方法,可以将字符串按照指定的分隔符拆分为数组。例如: ```javascript const str = "hello world"; const arr = str.split(" "); console.log(arr); // 输出 ["hello", "world"] ``` - **扩展运算符 (`...`)**:可以将字符串换为字符数组。例如: ```javascript const str = "hello"; const arr = [...str]; console.log(arr); // 输出 ["h", "e", "l", "l", "o"] ``` - **`Array.from()` 方法**:适用于需要对每个字符进行处理的情况。例如: ```javascript const str = "hello"; const arr = Array.from(str); console.log(arr); // 输出 ["h", "e", "l", "l", "o"] ``` ### C语言 在C语言中,字符串本质上是一个字符数组,因此可以直接使用字符数组来存储字符串。如果需要将字符串拆分为多个子字符串字符,可以使用标准库函数如 `strtok()` 或手动遍历字符串。例如: ```c #include <stdio.h> #include <string.h> int main() { char str[] = "hello world"; char *token = strtok(str, " "); while (token != NULL) { printf("%s\n", token); token = strtok(NULL, " "); } return 0; } ``` 上述代码将字符串 `"hello world"` 按空格分割成两个部分,并打印出来。 ### Java 在Java中,字符串可以通过 `split()` 方法换为数组。例如: ```java public class Main { public static void main(String[] args) { String str = "hello world"; String[] arr = str.split(" "); for (String s : arr) { System.out.println(s); } } } ``` ### Lua 在Lua中,字符串可以通过 `string.gsub()` 函数结合表(table)来实现换。例如: ```lua local str = "hello world" local arr = {} for word in string.gmatch(str, "%S+") do table.insert(arr, word) end print(table.concat(arr, ", ")) -- 输出 hello, world ``` ### LabVIEW 在LabVIEW中,处理字符串并将其拆分为数组通常涉及使用内置的字符串处理函数。对于中文字符的支持,可以通过特定的工具包或自定义算法来实现。例如,利用字符串拆分函数并指定适当的分隔符,可以轻松地将字符串换为数组[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值