Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 要拆分的正则表达式“/n”_Java_Regex - Fatal编程技术网

Java 要拆分的正则表达式“/n”

Java 要拆分的正则表达式“/n”,java,regex,Java,Regex,我想从Java中的字符串中拆分/n。例如,我有一个字符串字段,它有两行空格/n。我必须找出多行出现的地方的行,并用一行空格替换 "This is Test Message thanks Zubair " 从上面的例子来看,这是测试消息和感谢之间有更多的空格。所以我想减少为只有一行而不是两行,怎么做 str.replaceAll("(\\r\\n?|\\n){3,}", "$1$1"); 这样做的目的是将三个或更多的行终止符\r\n或\r\n替换为两个行终止符,以便将任何双空行

我想从Java中的字符串中拆分/n。例如,我有一个字符串字段,它有两行空格/n。我必须找出多行出现的地方的行,并用一行空格替换

"This is Test Message  


  thanks
  Zubair
"
从上面的例子来看,这是测试消息和感谢之间有更多的空格。所以我想减少为只有一行而不是两行,怎么做

str.replaceAll("(\\r\\n?|\\n){3,}", "$1$1");
这样做的目的是将三个或更多的行终止符\r\n或\r\n替换为两个行终止符,以便将任何双空行替换为一个空行(如果我正确理解您的要求)


这样做的目的是将三个或更多的行终止符\r\n或\r\n替换为两个行终止符,这样,如果我正确理解您的要求,任何双空行都将替换为一个空行。

我不知道如何使用正则表达式,但您可以使用StringTokenizer:

String reduceToOneLine(String input){
    // Note that this means both \r and \n are tokens, not that they have to appear together.
    StringTokenizer tokenizer = new StringTokenizer(input, "\r\n"); 
    StringBuffer output = new StringBuffer();
    while(tokenizer.hasMoreTokens()){
        output.append(tokenizer.nextToken());
    }
    return output.toString();
}

这将在换行符上拆分字符串,然后将每一行添加到一个新字符串中。标记器将其分隔符的倍数视为一,因此在行之间只剩下一个换行符。

我不知道如何使用正则表达式,但您可以使用StringTokenizer:

String reduceToOneLine(String input){
    // Note that this means both \r and \n are tokens, not that they have to appear together.
    StringTokenizer tokenizer = new StringTokenizer(input, "\r\n"); 
    StringBuffer output = new StringBuffer();
    while(tokenizer.hasMoreTokens()){
        output.append(tokenizer.nextToken());
    }
    return output.toString();
}

这将在换行符上拆分字符串,然后将每一行添加到一个新字符串中。标记器将其分隔符的倍数视为一,因此在两行之间只剩下一个换行符。

您的意思是\n还是/n?我想换行符和你的意思完全一样吗\n仅限换行符您可以搜索\\n,这表示正则表达式中的任何换行符序列。您是指\n还是/n?我想换行符和你的意思完全一样吗\n仅限换行符您可以搜索\\n这意味着正则表达式中的任何换行符序列。感谢您的回复,我会尽力让您知道,据我所知,OP希望将两个或多个连续的空行减少为一行。这只是消除了所有的换行。谢谢你的回复,我会尽量让你知道,因为我理解,OP希望减少两个或更多连续的空白行到一个。谢谢你的回复,我会尽量让你知道我喜欢引用和显式量词的用法。但是,如果中间行为空但不为空,这将无法正常工作。@pst True,但未给出空的明确定义。允许在其中添加带有空格的行是很容易的。谢谢你的回复,我会尝试让你知道我喜欢使用引用和显式量词。但是,如果中间行为空但不为空,这将无法正常工作。@pst True,但未给出空的明确定义。通过在其中添加\s*,可以很容易地添加带有空白的行。