8. shell将字符串以逗号分割转成数组(借助IFS)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8. shell将字符串以逗号分割转成数组(借助IFS)相关的知识,希望对你有一定的参考价值。
参考技术A 原理是将变化shell环境下的一个系统变量IFS#!/bin/bash
function to_array()
x=$1
OLD_IFS="$IFS" #默认的IFS值为换行符
IFS=","
array=($x) #以逗号进行分割了
IFS="$OLD_IFS" #还原默认换行符
for each in $array[*]
do
echo $each
done
arr=($(to_array 'a,b,c,d,e'))
echo $arr[*]
参考: shell分割字符串为数组
另外一个例子,介绍IFS的用法。 参考 shell中的特殊变量IFS
比如,有个文件内容如下:
the first line.
the second line.
the third line.
打印每行:
forline in `cat filename`
do
echo $line
done
结果是下面这种一行一个单词,显然是不符合预期的:
the
first
line.
the
second
line.
the
third
line.
借助IFS变量进行做个调整:
IFS=$'\n'
for line in `cat k.shfile`
do
echo $line
done
输出就是正确的:
the first line.
the second line.
the third line.
java中如何将字符数组转换成字符串,以逗号分割
String[] ary = "abc", "123", "45"; 想要得到 String str="abc,123,45";
参考技术A 这里主要用到了StringBuffer以及string的append方法、substring方法。大致思路如下:
str4为目标字符串,及最后的结果会被存放进str4
我们用stringbuffer类中的函数append来处理字符串数组str1,并通过逗号来分割,最后用tostring函数,将其转变成字符串的形式。
最后用substring来对结果进行截取,得到最后需要的形式:abc,123,45
下图为具体的代码段:
扩展资料:
在java中,关于字符数组、字符串分割截取拼接处理的一些常用类及方法:
StringBuffer的常用方法:
StringBuffer类中的方法主要偏重于对于字符串的变化,例如追加、插入和删除等,这个也是StringBuffer和String类的主要区别。
1、append方法
该方法的作用是追加内容到当前StringBuffer对象的末尾,类似于字符串的连接。调用该方法以后,StringBuffer对象的内容也发生改变,例如:
这样对象sb的值将变成”abctrue”。
2、substring方法
substring()
方法返回字符串的子字符串。
以上就会截字符串的[4,10)位,其中从0开始,包括第四位,不包括第十位。 参考技术B 这儿自己写的方法,主要使用到StringBuffer的toString方法和String的substring方法,话不多说,直接上代码:package
Demo;
public
class
TestString
public
static
void
main(String[]
args)
String[]
str1
=
"abc",
"123",
"45";
StringBuffer
stb2
=
new
StringBuffer();
String
str4
=
null;
for(int
i
=
0;
i
<
str1.length;
i++)
str4
=
stb2.append(str1[i]
+
",").toString();
String
s
=
str4.substring(0,
str4.length()
-
1);
System.out.println(s);
//运行结果:abc,123,45
参考技术C 方法1、需要引入Apache
Commons组件中的个commons-lang.jar包:
String
str1=StringUtils.join(ary,
",");
方法2、格式化
String
str2
=
String.format("%s,%s,%s",
ary);
以上是关于8. shell将字符串以逗号分割转成数组(借助IFS)的主要内容,如果未能解决你的问题,请参考以下文章