\n和\\s+;不在Java中工作
所以我是一名IB学生,我正在攻读Comp。Sci。我们需要创建一个代码来解决问题,在编写Java代码时,我发现了\n和\\s+;不在Java中工作,java,replace,bluej,Java,Replace,Bluej,所以我是一名IB学生,我正在攻读Comp。Sci。我们需要创建一个代码来解决问题,在编写Java代码时,我发现了String.replaceAll()这对编写代码很有帮助。我必须删除所有空格和新行,所以我找到了\\s+和\\n。因此,当我输入代码String.replaceAll(“\\s+”,”)它不起作用,与String.replaceAll(\\n“,”)相同。我已尝试删除“”但BlueJ发送了一个错误,指出\是非法字符。我检查了是否可能是字符串.replaceAll()不起作用,但它确实
String.replaceAll()代码>这对编写代码很有帮助。我必须删除所有空格和新行,所以我找到了\\s+
和\\n
。因此,当我输入代码String.replaceAll(“\\s+”,”)代码>它不起作用,与String.replaceAll(\\n“,”)相同代码>。我已尝试删除“”但BlueJ发送了一个错误,指出\
是非法字符。我检查了是否可能是字符串.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+
不工作的原因,那将很有帮助。什么是“不工作”呢
关于这一点,人们经常忘记的一件事是类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+", "");
这条线
System.out.println("Multiline \r\n String".replaceAll("\\s+", ""));
印刷品
MultilineString
因此,我建议您发布遇到问题的确切字符串文字,并生成确切的输出。从字符串中删除换行符
String s = "Enter name :\n Your name ";
s = s.replaceAll("\n", "");
真正让人们困惑的一个可能的原因是,\\s
不起作用的原因是字符代码0xa0(非中断空格)而不是普通空格。方法replaceAll
不使用\\s
regex捕捉0xa0。相反,您必须执行以下操作:
String name1 = name.replaceAll("\\u00a0","");
替换不间断空格。我假设您指的是Java,而不是JavaScript…请看这个答案,它解释了您需要记录的内容。请同时给出您的输入值。我已经输入了部分代码,您可以看到我在上面声明了这些内容。刚才有人输入了'.replaceAll((?s)\\s+,'');'这对新行很好。问题是它不输出任何东西,它使用新字符串创建一个文本文件。如果我做了输出();或System.out.println();它将给出与System.out.println()相同的结果;将在文本文件中给出。因此,您的问题完全在于其他地方output
不是标准的Java函数,InputString
也不是。你知道你要处理的字符串是什么吗?是的,你是对的,作为IB的学生,我们得到了一个名为IBIO的代码,它也执行输出函数和其他函数,很抱歉忘了提到这一点