gpt4 book ai didi

java - 如何防止CR/LF?

转载 作者:行者123 更新时间:2023-12-02 03:45:37 25 4
gpt4 key购买 nike

我正在使用 pdfbox 阅读 pdf,显然,至少在基于 Windows 的框架上,对于换行符,它使用 unicode,例如

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

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;
}
}
}

最佳答案

分割时应该丢弃行分隔符;例如

for (final String s : x.split("\\s+")) {

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

(使用 trim() 并非在所有情况下都有效。假设 x 包含 "word\r\nword"。您不会在两个单词之间拆分,并且 s 在某个时刻将是 "word\r\nword"。然后 s.trim() 不会删除换行符,因为它们不在字符串的末尾。)

<小时/>

更新

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

sum += x.replaceAll("\\s+", " ") + "."

这比你要求的要多一点。它将每个空白序列替换为单个空格。

<小时/>

顺便说一句,如果您使用 break 来跳出循环而不是乱用标志,您的代码会更简单、更高效。 (Java 有一个 boolean 类型……天啊!)

   if (Keyword.toLowerCase().equals(s.toLowerCase()) && !"".equals(s)) {
sum += ....
break;
}

关于java - 如何防止CR/LF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36337718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com