也许这是因为它是星期五的结束,我已经找到了解决办法,但这让我很伤心.
我使用Java但是.NET开发人员.
我有一个字符串,我需要用分号逗号分割它.让我们说它在CSV文件中有一行,有200 210列.line.split(',').长度有时是199,其中','的计数将是208或209.我发现以2种不同的方式计数甚至可以确定(使用正则表达式,然后手动循环并检查失去理智后的角色).
我在这里缺少什么是超级明显的面对面的东西?为什么不是foo.split(delim).length == CountOfOccurences(foo,delim),有时只是?
非常感谢
首先,一个明显不同.如果有200列,全部带有文本,则有199个逗号.其次,Java默认情况下会丢弃尾随空字符串.您可以通过传递负数作为第二个参数来更改此值.
"foo,,bar,baz,,".split(",")
Run Code Online (Sandbox Code Playgroud)
是:
{foo,,bar,baz}
Run Code Online (Sandbox Code Playgroud)
4个元素的数组.但
"foo,,bar,baz,,".split(",", -1)
Run Code Online (Sandbox Code Playgroud)
是::
{foo,,bar,baz,,}
Run Code Online (Sandbox Code Playgroud)
所有6.
请注意,默认情况下仅删除尾随空字符串.
最后,不要忘记将String编译为正则表达式.这不适用于此,因为,
它不是特殊字符,但您应该记住它.
发生了一些事情.首先,如果您有三个项目,如a,b,c和逗号分割,则您将有三个条目,比逗号数量多一个.
但是你所处理的可能来自连续的分隔符.:a ,,,, b,c ,,,,,
最后的那些被放弃了.检查java文档中的split函数. http://download.java.net/jdk7/docs/api/java/lang/String.html
归档时间: |
|
查看次数: |
1072 次 |
最近记录: |