Java 删除特定子字符串之前的空格
我想regex可以帮我 假设我有字符串Java 删除特定子字符串之前的空格,java,regex,pattern-matching,Java,Regex,Pattern Matching,我想regex可以帮我 假设我有字符串什么是foo。福在哪里。福怎么样。为什么是福?什么时候?一起吃吧。lol foo 如何删除每个foo之前的空格?我会尝试用空字符串替换空格,或者抓取“What is”并将其作为“Whatis”放入新字符串中。但是我以前从未使用过Java,所以我不知道它是否与C#的工作原理相同。您需要它来做什么 你可以用“What”替换所有出现的“What”,空间就消失了。您可以通过每个支持简单替换的texteditor实现这一点 更新: 在Java中,您可以执行以下操作:
什么是foo。福在哪里。福怎么样。为什么是福?什么时候?一起吃吧。lol foo
如何删除每个
foo
之前的空格?我会尝试用空字符串替换空格,或者抓取“What is”并将其作为“Whatis”放入新字符串中。但是我以前从未使用过Java,所以我不知道它是否与C#的工作原理相同。您需要它来做什么
你可以用“What”替换所有出现的“What”,空间就消失了。您可以通过每个支持简单替换的texteditor实现这一点
更新:
在Java中,您可以执行以下操作:
str = str.replaceAll("What ", "What");
有关‘富’的最新消息
你可以很容易地将其应用于任何事情
String str = "What is foo. Where is foo. How is foo. Why foo? When foo? together foo. lol foo";
str = str.replaceAll(" foo", "foo");
System.out.println(str);
将输出
What isfoo. Where isfoo. How isfoo. Whyfoo? Whenfoo? togetherfoo. lolfoo
也许你在寻找这样的东西:
"What is your name".replaceAll("(What) (\\w+)", "$1$2")
它将以“What”后跟一个空格,后跟一些单词(可以是任何东西,例如示例中的“is”),
并替换为两个串联的单词,中间没有空格。您可以执行以下操作:
public String replaceSpaceBefore( String sentence, String word ) {
return sentence.replaceAll(" " + word, word);
}
在您的示例中,参数“word”将是“is”,而“句子”将是“what is your name”。使用字符串库。首先找到“你的名字”的位置(字符索引)。抓取从字符串开始到该点的子字符串(这样您将只剩下“What is”)。修剪以删除尾随空格,然后调用String.replace(“,”)以删除两个单词之间的空格。然后不管“是”是什么,这都会起作用 您是否尝试过使用方法
publicstringreplacefirst(stringregex,stringreplacement)
使用此功能,您可以执行以下操作:
Str.replaceFirst(“\s”和“)
我不知道怎么读你的问题,但我的解释是在第一个和第二个单词之间去掉一个空格
public class Junk {
public static void main(String[] args) {
String[] strings = {
"What is the name of your cat?",
"Who are all these people?",
"How do I code things?",
"I'm not feeling well.",
"Don't"
};
Junk junk = new Junk();
for(String s : strings){
System.out.println(junk.removeSpaceBefore(s));
}
}
public String removeSpaceBefore(String full){
// Use capturing groups. $1=First group. $2=Second Group
return full.replaceFirst("(\\w+)\\s(.+)","$1$2");
}
}
以及输出
Whatis the name of your cat?
Whoare all these people?
Howdo I code things?
I'mnot feeling well.
Don't
你的猫叫什么名字?
这些人都是谁?
如何编写代码?
我感觉不舒服。
不知道我该怎么做?我对此一无所知。我使用了替换和其他方法。但这是另一种情况。我想我必须研究模式匹配。但我不确定。假设我们在
foo
之前删除空格,那么的“data foo foobar”
的结果应该是什么?它应该是“datafoo foobar”
还是“datafoobar”
?如果字符串中包含单词,则该怎么办?使用您的解决方案,OP还将删除此单词前的空格。这里缺少一件事:然后需要更多的解决方法,但OP只是用一个简单的例子问了一个简单的问题。Aadam,它不会改变答案,因为replaceAll
将对所有发生的事件执行此任务。哦,天哪。我试过所有的方法,但不是用别的方法。这真的很简单。谢谢你all@Aadam例如,你的word
可以是U.S.A
或A*
或A+b
?