从Java中的字符串数组中删除空字符串元素

时间:2017-05-21 10:51:12

标签: java regex string

我正在尝试获取文本文件的内容,删除字母以外的所有内容,然后将其转换为String的数组,以便单独处理单词。 我这样做是为了获取文本文件:

String temp1= IOUtils.toString(FIS,"UTF-8");
String temp2=temp1.replaceAll("[,.!;:\\r\\n]"," ");

然后为了对字符串进行标记,我这样做:

String[] tempStringArray = temp2.split(" ");

问题在于,当创建数组时,各个索引处都有空String。这些空String位于换行符位置,多个空格,替换标点符号等等。文本文件 我希望从我的String数组中删除这些空的String,或者以他们无法输入String数组的方式删除这些{{1}}。 怎么办呢?

3 个答案:

答案 0 :(得分:5)

按所有空格分割,例如:<link href='http://storage.googleapis.com/<BUCKET>/static/rest_framework_swagger/css/print.css' media='print' rel='stylesheet' type='text/css'/>

答案 1 :(得分:2)

在您的示例中,如果您的字符集[,。!;:\ r \ n]中有多个字符,则会将其替换为多个空格。当您调用(?<=\W)[a-zA-Z]{10}(?=\W) 方法时,它会在数组中将空出现位置引用到行中的多个空格。

你可以在split()方法中使用正则表达式,这对你的例子来说会更好。

尝试将split()temp2.split(" ")重新混合。这将在一行中查找多个空格,并且只是在空白空间的大间隙周围标记文本。

答案 2 :(得分:2)

虽然Daniel Arthur和Young Millie的答案是正确的,但是可以通过直接拆分要避免的角色来替换这两个步骤:

/Repertuar/Film/Title/string-length(.)