首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止CR/LF?

如何防止CR/LF?
EN

Stack Overflow用户
提问于 2016-03-31 15:31:25
回答 2查看 650关注 0票数 0

我正在使用pdfbox从pdf中读取数据,显然,至少在基于Windows的框架中,对于中断行,它使用unicode作为
&#10

我的问题是,如何防止这个破行字符连接到下面代码中的字符串?

代码语言:javascript
复制
tokenizer =new StringTokenizer(Text,"\\.");
while(tokenizer.hasMoreTokens())
{
    String x= tokenizer.nextToken();
    flag=0;
    for(final String s :x.split(" ")) {
       if(flag==1)
          break;
       if(Keyword.toLowerCase().equals(s.toLowerCase()) && !"".equals(s)) {
          sum+=x+"."; //here need first to check for "
&#10"
                      // before concatenating the String "x" to String "sum"
          flag=1;
       }
   }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-31 15:38:03

当你分开时,你应该丢弃分隔线。

代码语言:javascript
复制
for (final String s : x.split("\\s+")) {

这使单词分隔符成为一个或多个空白字符。

(使用trim()并不能在所有情况下都起作用。假设x包含"word\r\nword"。您不会在这两个单词之间分开,s在某个时候将是"word\r\nword"。那么s.trim()将不会删除换行字符,因为它们不在字符串的末尾。)

更新

我刚刚发现您实际上是在追加x而不是s。所以你也需要做这样的事情:

代码语言:javascript
复制
sum += x.replaceAll("\\s+", " ") + "."

这比你要求的要多一点。它用一个空格替换每个空格序列。

顺便说一句,如果您使用break来脱离循环而不是乱动一个标志,那么您的代码就会更简单、更高效。(而且Java有一个boolean类型..。看在上帝的份上!

代码语言:javascript
复制
   if (Keyword.toLowerCase().equals(s.toLowerCase()) && !"".equals(s)) {
       sum += ....
       break;
   }
票数 2
EN

Stack Overflow用户

发布于 2016-03-31 15:52:06

您确定要在这里添加x吗?

代码语言:javascript
复制
if(Keyword.toLowerCase().equals(s.toLowerCase()) && !"".equals(s)) {
    sum+=x+"."; //here need first to check for "
&#10"
                // before concatenating the String "x" to String "sum"
    flag=1;
}

你不想要s

代码语言:javascript
复制
    sum += s + ".";

更新

哦,我明白了。所以你真正想要的是:

代码语言:javascript
复制
tokenizer = new StringTokenizer(Text,"\\.");
Pattern KEYWORD = Pattern.compile("\\b"+Keyword+"\\b", Pattern.CASE_INSENSITIVE);
StringBuilder sb = new StringBuilder(sum);
while(tokenizer.hasMoreTokens())
{
    String x = tokenizer.nextToken();
    if (KEYWORD.matcher(x).find()) {
        sb.append(x.replaceAll("\\s+", " ")).append('.');
    }
}
sum = sb.toString();

(假设关键字以字母开头和结尾,并且本身不包含任何RegEx代码)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36337718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档