在Java中,在输入字符串的每个单词末尾追加一个字符串
我对Java比较陌生,但我正在尽最大努力掌握它 因此,在我的作业中,我被要求从用户那里获得一个输入(字符串),并在输入字符串的每个单词的末尾添加一个单词。我可能错过了一些东西,因为我想不出这么简单的东西 比如说,, 我们从用户那里得到输入 这就是我喜欢的 我希望它是: 这只猫看起来很像它 在这个问题的解决方案中,我不能使用任何if/for/while语句/循环,但是,我可以使用Java字符串类API 这是我目前掌握的代码在Java中,在输入字符串的每个单词末尾追加一个字符串,java,string,append,string-concatenation,Java,String,Append,String Concatenation,我对Java比较陌生,但我正在尽最大努力掌握它 因此,在我的作业中,我被要求从用户那里获得一个输入(字符串),并在输入字符串的每个单词的末尾添加一个单词。我可能错过了一些东西,因为我想不出这么简单的东西 比如说,, 我们从用户那里得到输入 这就是我喜欢的 我希望它是: 这只猫看起来很像它 在这个问题的解决方案中,我不能使用任何if/for/while语句/循环,但是,我可以使用Java字符串类API 这是我目前掌握的代码 public class Exercise2 { public
public class Exercise2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Please enter a string : ");
String userString = scan.nextLine();
String inputString = "meow";
//I'm aware that for the next like concatenating is just adding
//the word meow with the last word of the userString.
String newString = userString.concat(inputString);
scan.close();
}
}
问题:如何获得所需的输出?您可以使用
replaceAll
userString = userString + " ";
userString =userString.replaceAll("\\s+"," "); // removing multiple spaces
userString = userString.replaceAll(" ","meow ");
要使其在最后一个单词中起作用,您需要在末尾附加'
是的,
trim()
最早添加的最后一个空格。这个问题已经有很多答案了,但据我所知,没有一个答案是正确的。或者它不适用于多个空间(因为每个空间都替换为“喵”
)。或者用“喵喵”
重新绘制多个空格-因此空格或空格丢失。或末端的空间(或没有)处理不正确
这是我的看法:
String userString = "This is how I like it";
System.out.println(userString.replaceAll("([^\\s])(\\s|$)", "$1meow$2"));
结果:
Thismeow ismeow howmeow Imeow likemeow itmeow
我假设“word”是由空格字符或字符串的开头或结尾分隔的非空格字符序列。“单词”的最后一个字符是非空格字符,紧跟空格字符或字符串末尾。这可以通过正则表达式([^\s])(\s |$)
检测到。第一组将代表单词的最后一个字符,第二组-以下空格或字符串结尾
因此,为了给每个单词添加meow
,我们可以将其插入单词的最后一个字符和字符串的后面空格/结尾之间。这就是$1meow$2
所做的$1
引用regex中的第一组(单词的最后一个字符),$2
——第二组(在空格/字符串末尾之后)
喵喵。您必须将这一字符串标记为单词,添加后缀,然后将它们重新组合在一起。你能做每一步吗?对不起,是的,基本上我如何获得所需的输出^^ ^'如何定义“单词”?在
中当然是。
是课程。
(末尾有点)是一个“单词”或课程
(没有点)。@lexicore如果你指的是标点符号,我不必担心任何标点。@GeekyMeow你应该定义“单词”是什么。用空格分隔的东西?对最后一个单词不起作用。@lexicore我们可以在末尾附加空格。如果字符串包含双空格,则不起作用。@lexicore OP没有设置这么多条件。我们可以照顾好所有这些条件。是吗?@lexicore我希望,它解决了你所有的问题?不过,离题:我必须补充一点,假设这个词也是一个单独字符串中的输入,即用户扫描的string inputString
,在这种情况下,你将如何写下它?因为在$1meow$2
中,$1
和$2
指的是正则表达式,并用“”括起来,如果使用变量inputString
“$1”+inputString+”$2,则不能使用它。是的,这非常有效。谢谢!