split()有个坑

刚才在做DBMS课程设计的时候遇到了一个以前遇到过的问题不过这次我没有一眼认出来,想了好一会才想起来。

就是在用split()方法来分割路径名字符串的时候,比如

String path = “E:\split\ikonw";
String[] tpath = path.split("\\");

你以为万事大吉了,但是split是基于regexp的,所以需要这样

String path = “E:\split\ikonw";
String[] tpath = path.split("\\\\");

这是因为‘\\‘在Java中代表字符‘\‘,在regexp中也是这样所以    ‘\\\\’ ——>‘\\‘ + ‘\\‘——>‘\‘ + ‘\‘——>‘\\‘——>‘\‘

以后再也不会犯这种低级错误了(貌似上次也是这样谁说的)。

时间: 2024-08-10 17:39:53

split()有个坑的相关文章

[Java]_[初级]_[String的split里的坑]

场景: 1. 有时候需要使用某些字符来作为值的合并存储,比如以@作为分隔符, [email protected]@323232, 用一个属性存储这3个值, 用的时候再拿出来split就可以了. 2. 问题是有时候某个值会缺失,比如第一个值没有的情况, @[email protected]  第2,3个值没有的情况 [email protected]@ ,当然也期望是能返回3个值,只是后边2个值为空字符就行了. 事实上,结果不是这样,即使 2,3个值没有的情况 [email protected]@

jdk的split 有多坑

先看段 代码: String str = "4117|519951|长信利泰灵活配置混合型证券投资基金|长信利泰|3|3||||156|0||||||||||||||||||||{\"name\":\"长信基金\",\"id\":\"80030\"}|中国民生银行|[{\"avatarUrl\":null,\"name\":\"刘波\",\"id\

String split 注意事项

在做588. Design In-Memory File System时遇到 split 函数的坑. 1.  String[]  strs=  "/a/b/c".split("/") 得到的是 strs=   ["","a","b","c"] 四个字符串,所以应该忽略第一个空字符串 2.  String[]  strs=  "/".split("/"

字符串split操作到底有多少坑

微信公众号 长字符串切分,取其中元素封装或者将封装信息组合成长字符串都是常规操作,但是这种长字符串往往是不可控的,如一个长字符串就是由一个元素组成,或者存在空字符串的元素,看似这并没有什么问题,但是使用不同工具类的split方法进行切分结果是完全不同的.不知道你是否遇到这样的坑,下面一起来看看. String类自带的split方法 直接使用String本身自带的split方法,看对不同字符串的切分结果. 没有分隔符的字符串 //str = "1" public static void

java的split的坑,会忽略空值

String test = "@@@@"; String[] arrayTest = test.split("\\@"); System.out.println(arrayTest.length); 输出为0,split为忽略空值,如果要想取得正确的值,需要: String test = "@@@@"; String[] arrayTest = test.split("\\@",-1); System.out.println(

split的坑

之前有同事分享过,网上看到一个: http://yinny.iteye.com/blog/1750210 补充一下,如果要解析类似csv的一行(但不需要处理转义),用String.split(str,sep,0)可以,它不会丢弃分出来的空串,但sep是regex,有性能问题,或者容易混淆.StringTokenizer虽然性能快,但是会把空串去掉.apache common lang3提供的接口最丰富,split会吃掉空串,splitPreverveAllTokens则会保留,适合处理csv一行

Java 字符串Split方法的一个坑

java字符串的split,只传一个参数,后面空白的字符串会被忽略: public static void main(String[] args) { String str = "ab|c||"; String [] split = str.split("\\|"); System.out.println(Arrays.toString(split)); } 输出结果是[ab, c]. 解决方法是split第二个参数传一个负数,例如 public static vo

跨过几个坑,终于完成了我的第一个Xamarin Android App!

时间过得真快,距离上次发随笔又是一年多.作为上次发的我的第一个WP8.1应用总结的后继,这次同样的主要功能,改为实现安卓版APP.前几个月巨硬收购Xamarin,把Xamarin集成到VS里了,大大方便了我广大.net码农.由于年初脱了WP的坑,换了个安卓低端机,想着什么时候装Xamarin开发个App玩玩. 上个月笔记本100G的C盘莫名其妙快满了,趁着重装系统的机会,安装了VS2015 with sp3,下载开发Android App需要的各种东东.这里要感谢[C#]VS2015开发环境的安

那些年我用awk时踩过的坑——awk使用注意事项

由于项目经历原因,经常使用awk处理一些文本数据.甚至,我特意下载了一个windows上的awk:gawk.exe,这样在windows上也能享受awk处理数据的方便性,. 俗话说,"常在河边走,哪能不湿鞋",使用awk过程中碰上过不少坑,这里稍总结一下,希望对大家有帮助. 1 FS问题 看看这两个awk脚本: cat demo_1.txt demo_2.txt 1|2|3|4| 1|@|2|@|3|@|4|@| awk -F '|' '{print $2}' demo_1.txt;