今天改延时系统的BUG,原先用英文的逗号作为内容的分隔符了,但这个太常用,不适合作为内容的分隔。想改成“^”或是“||”,代码改成String[] workContentArray = org.apache.commons.lang.StringUtils.split(workContentstr, "|");但程序报错。
后来网上看到这样一个例子:一个程序需要将字符串10^8转换成double型数值,通过^作为分隔符,得到底数10和指数8,再调用Math.pow(a, b)函数来完成这一转换操作。
但是"10^8".split("^");出错。
split函数的参数是正则表达式,而^,|,$,\,*,+,-,?等都是其特殊字符。因此,使用时需要加\\进行转义。
/*
* ^分隔字符串
*/
public class Test
{
public static void main(String[] args)
{
String R = "10^8"; //待分隔的字符串
String[] RStr = R.split("\\^"); //以^为分隔符,分隔字符串
double a = Double.parseDouble(RStr[0]);
double b = Double.parseDouble(RStr[1]);
System.out.println(Math.pow(a, b)/10);
}
}
最后改成
String[] workContentArray = org.apache.commons.lang.StringUtils.split(workContentstr, "\\|");
就可以了。
后来网上看到这样一个例子:一个程序需要将字符串10^8转换成double型数值,通过^作为分隔符,得到底数10和指数8,再调用Math.pow(a, b)函数来完成这一转换操作。
但是"10^8".split("^");出错。
split函数的参数是正则表达式,而^,|,$,\,*,+,-,?等都是其特殊字符。因此,使用时需要加\\进行转义。
/*
* ^分隔字符串
*/
public class Test
{
public static void main(String[] args)
{
String R = "10^8"; //待分隔的字符串
String[] RStr = R.split("\\^"); //以^为分隔符,分隔字符串
double a = Double.parseDouble(RStr[0]);
double b = Double.parseDouble(RStr[1]);
System.out.println(Math.pow(a, b)/10);
}
}
最后改成
String[] workContentArray = org.apache.commons.lang.StringUtils.split(workContentstr, "\\|");
就可以了。