和 \s+ 在 Java 中不起作用

Posted

技术标签:

【中文标题】\n 和 \\s+ 在 Java 中不起作用【英文标题】:\n and \\s+ not working in Java 【发布时间】:2012-10-26 06:00:12 【问题描述】:

所以我是一名 IB 学生,我正在参加 Comp。科学。我们需要创建一个代码来解决问题,因为我正在编写我的 Java 代码,我发现 String.replaceAll(); 对编写我的代码很有帮助。我必须删除所有空格和任何新行,所以我找到了\\s+\\n。因此,当我输入代码String.replaceAll("\\s+",""); 时,它不起作用,与String.replaceAll("\\n",""); 相同。我尝试删除“”,但 BlueJ 发送错误消息,指出 \ 是非法字符。我检查了String.replaceAll(); 是否可能不起作用但它确实起作用,所以我得出的结论是\\s+\\n 有问题。

我找到了删除空格String.replaceAll(" ",""); 的替代方法,但我仍然需要一种删除新行的方法。

这是部分代码

String name = InputString("Enter name: ");
String name1 = name.replaceAll("\\s+","");
   output(name1); // the output function is located in the IBIO which is provided because I'm and IB student

好吧,有人给了我一个代码,可以删除所有新行 \\n,但如果人们能告诉我我的 \\s+ 不起作用的原因,那会很有帮助。

【问题讨论】:

我假设您指的是 Java,而 不是 javascript... 请看这个答案***.com/questions/2163045/… 它解释了你需要做什么 能否请您也提供您的输入值 【参考方案1】:

“它不起作用”是什么意思?

人们经常忘记的一件事是 String 类是不可变的。这意味着如果您在String 上调用类似replace() 的方法,则原始字符串不会 更改;相反,该方法返回一个新字符串。

String s = "Hello World";

// Does not change the original string!
s.replaceAll("\\s+", ""); 

// Use this instead to assign s to the new string
s = s.replaceAll("\\s+", "");

【讨论】:

我已经输入了一部分代码,你可以看到我在上面声明了这些东西。并且有人刚刚输入了 '.replaceAll("(?s)\\s+", "");'这适用于新行。【参考方案2】:

\\s 不起作用的一个可能原因是字符代码 0xa0(不间断空格)而不是普通空格。方法 replaceAll 不会使用 \\s 正则表达式捕获 0xa0。相反,您必须执行以下操作:

String name1 = name.replaceAll("\\u00a0",""); 

替换不间断的空格。

【讨论】:

【参考方案3】:

这一行

System.out.println("Multiline \r\n String".replaceAll("\\s+", ""));

打印

MultilineString

因此,我建议您发布您遇到问题的确切字符串文字,并生成确切的输出。

【讨论】:

问题是它不输出任何东西,它使用新字符串来创建一个文本文件。如果我做 output();或 System.out.println();除了 System.out.println(); 之外,它会给出相同的结果。将在文本文件中给出。 所以你的问题完全出在其他地方。 output 不是标准的 Java 函数,InputString 也不是。您是否确定要处理的字符串是什么? 是的,你是对的,作为 IB 学生,我们得到了一个名为 IBIO 的代码,它还具有输出功能和其他功能,抱歉忘记提及了【参考方案4】:

从字符串中删除换行符

String s = "Enter name :\n Your name ";
        s = s.replaceAll("\n", "");

【讨论】:

以上是关于 和 \s+ 在 Java 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥准备好的语句在java中不起作用?

npm run build:s-s-r 在 Angular 8 中不起作用

为啥 SetTimeZoneInformation 在 Windows XP 中不起作用?

MouseDragged 和 MouseMoved 在 Java Applet 中不起作用

java - JLabel setForeground 在 SwingWorker 中不起作用

Java 小程序在 Azure 中不起作用