在使用
String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。
我们看jdk doc中说明:
public String[] split(String regex)
Splits this string around matches of the given regular expression .
参数regex是一个 regular-expression的匹配模式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果,比如测试下面的代码:
用竖线 | 分隔字符串,你将得不到预期的结果
String[] aa = "aaa|bbb|ccc".split("|");
//String[] aa = "aaa|bbb|ccc".split("\\|"); 这样才能得到正确的结果
for (int i = 0 ; i
System.out.println("--"+aa[i]);
}
用竖 * 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常
,用加号 + 也是如此。
String[] aa = "aaa*bbb*ccc".split("*");
//String[] aa = "aaa|bbb|ccc".split("\\*"); 这样才能得到正确的结果
for (int i = 0 ; i
System.out.println("--"+aa[i]);
}
显然,+ * 不是有效的模式匹配规则表达式,用"\\*" "\\+"转义后即可得到正确的结果。 "|" 分隔串时虽然能够执行,但是却不是预期的目的,"\\|"转义后即可得到正确的结果。
还有如果想在串中使用"\"字符,则也需要转义.首先要表达"aaaa\bbbb"这个串就应该用"aaaa\\bbbb",如果要分隔就应该这样才能得到正确结果:
String[] aa = "aaa\\bbb\\bccc".split("\\\\");
最后,请运行这个程序,并更正程序中的错误:
========================
在java.lang包中有String.split()方法,返回是一个数组
我在应用中用到一些,给大家总结一下,仅供大家参考:
1、如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");
2、如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");
“.”和“|”都是转义字符,必须得加"\\";
3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“acount=?
and uu =? or n=?”,把三个都分隔出来,可以用String.split("and|or");
分享到:
相关推荐
使用Java split() 方法 split() 方法根据匹配给定的正则表达式来拆分字符串。 注意: . 、 | 和 * 等转义字符,必须得加 \。多个分隔符,可以用 | 作为连字符。 // 字符串转数组 java.lang.String String str = "0,1...
关于string的split 和 join 方法对导入os模块进行os.path.splie()/os.path.join() 貌似是处理机制不一样,但是功能上一样。1.string.split(str=’ ‘,num=string.count(str)): 以str为分隔,符切片string,如果num...
splitsplit与join作用相反,用于把一个字符串分割成字符串数组.stringObject.split(a,b)这是它的语法. a是必须的 决定从a这分割.b不是必须的,可选。该参数可指定返回的数组的最大长度 。如果设置了该参数,返回的...
主要说了string类 常用函数的使用技巧 注意点
若要指定自定义的分隔符,请使用 Array.join() 方法。 可用性:ActionScript 1.0;Flash Player 5 返回 String - 一个字符串。 示例 下面的示例创建 my_array,并将其转换为字符串。 var my_array:Array = new ...
string[] videotime = b.Split(':'); int totime = int.Parse(videotime[0]) * 3600 + int.Parse(videotime[1]) * 60 + int.Parse(videotime[2]); text.Text = totime.ToString(); 自定义计数器 text.Text = ...
主要介绍了Java正则表达式之split()方法,结合实例形式较为详细的分析了split方法的功能、使用方法及相关注意事项,需要的朋友可以参考下
该项目演示了在 Clojure 中拆分字符串的各种方法。 选择特定变体时,不要忘记检查输入要求: 一些变体适用于字符集合并支持动态处理和无限集合,一些仅适用于已加载到内存中的字符串。 确定何时拆分字符串,有些...
1)能将英语四级单词文本文件的内容读出来及放到内存的数组或列表中(使用StreamReader的循环读ReadLine()或直接ReadToEnd(), 然后用string的Split('\n')分割成多行;然后对每一行Trim().Split('\t')得到的string[]...
6.1.8 ext.domquery的使用方法 / 249 6.1.9 ext js选择器的总结 / 252 6.2 获取单一元素:ext.dom.element / 252 6.2.1 从错误开始 / 252 6.2.2 使用ext.get获取元素 / 253 6.2.3 使用ext.fly获取元素 / 256 ...
100.string.split(分隔符)返回一个数组存储值. 101.string.substr(start[,length])取从第几位到指定长度的字符串. 102.string.toLowerCase()使字符串全部变为小写. 103.string.toUpperCase()使全部字符变为大写. 104...
首先来看下两个方法的定义: 函数原型:array split (string $pattern, string $string [, int $limit]) 函数原型:array explode ( string $separator, string $string [, int $limit]) 初看没有啥差别,貌似功能都...
使用集合时,必须注意集合的生命期问题。如果有两个集合 L1 和 L2,使用 了 L1=L2; 后,只要 L2 生命期没有终结,它的以后的变化就可能会影响到 L1 的数值。因 此在赋值后应该及时销毁或者初始化 L2,以免发生不可...
string[] tmpUrl = url.Split('.'); img.Save(string.Concat(savePath, "/", DateTime.Now.ToString("yyyyMMddHHmmssfff"), ".", tmpUrl[tmpUrl.Length - 1])); img.Dispose(); stream.Close(); } allDone.Set...
<script type=text/javascript><!-- var LastLeftID = ""; function menuFix() { var obj = document.... //*这两个function的顺序要注意一下,不然在Firefox里GetMenuID()不起效果 menuFix(); --></script>
String[] k = j.split(" "); return k[2] + k[1].toUpperCase() + k[5].substring(2, 4); } /** * 获取一个月的最后一天 * * @param dat * @return */ public static String getEndDateOfMonth(String dat)...
在表达式中使用算术运算符时要注意以下几点: 1,运算符两边的运算数字必须是数字 2,使用+运算符时,如果一边是数字,一边是字符串,就会自动将数字转换为字符串再连接,如:${3 + "5"},结果是:35 使用内建的int函数可...
要播放的时候调用PlaySound()方法即可。 其实步骤很简单,先引用System.Media空间,然后创建一个SoundPlayer 对象,用SoundLocation 属性设置声音文件的地址,然后调用Play()方法即可播放。不过注意,这个类...
String[] handlerInfo = doc.DocumentElement.GetAttribute("Handler").Split(new char[] { ' ' }); String cmdId = doc.DocumentElement.GetAttribute("ID"); String sessionId = doc.DocumentElement....
* 客户退出时的处理逻辑 规则:以"%EXIT_CHATROOM%"开头的消息为客户退出标记 */ if (str.charAt(0) == '%') { String com = str.split("%")[1]; if (com.equals("EXIT_CHATROOM")) { hs.remove(s); print...