如何在Java中替换单个字符串中的多个单词?

shu*_*ila 7 java

我正在编写一个程序,它将替换单个字符串中的多个单词.我正在使用这个代码,但它正在替换单词,但给出两个不同的行结果.我希望在一行中替换多个单词并输出.

import java.util.*;
public class ReplaceString {
    public static void main(String[] args) {
        new ReplaceString().run();
    }

    public void run()
    {

        System.out.println("Input String:\n");////
        Scanner keyboardScanner = new Scanner(System.in);/////
        String inString = keyboardScanner.nextLine();/////
        String strOutput = inString.replace("call me","cm");
        System.out.println(strOutput);

        String strOutput1 = inString.replace("as soon as possible","asap");
        System.out.println(strOutput1);      

    }
}
Run Code Online (Sandbox Code Playgroud)

dog*_*ane 17

如果您想在单个语句中执行此操作,您可以使用:

String strOutput = inString.replace("call me","cm").replace("as soon as possible","asap");
Run Code Online (Sandbox Code Playgroud)

或者,如果您有许多此类替换,将它们存储在某种数据结构(如2d阵列)中可能更明智.例如:

//array to hold replacements
String[][] replacements = {{"call me", "cm"}, 
                           {"as soon as possible", "asap"}};

//loop over the array and replace
String strOutput = inString;
for(String[] replacement: replacements) {
    strOutput = strOutput.replace(replacement[0], replacement[1]);
}

System.out.println(strOutput);
Run Code Online (Sandbox Code Playgroud)

  • 这样做是不正确的,因为如果你输入"abc"和`replacements = {{"a"} {"b"},{"b"} {"c"}}`你应该期待``bcc "`关于输出,但你会得到``ccc"`.这里描述了解决方案 - [stackoverflow.com/questions/1326682/java-replacing-multiple-different-substring-in-a-string-at-once-or-in-the-most](http://stackoverflow. COM /问题/ 1326682/java的替换-多不同子串-IN-A-串一次刻录或 - 内式最). (5认同)

Mar*_*aux 5

当然,它打印两行:您有两个打印语句。使用此代码:

import java.util.*;

public class ReplaceString {
    public static void main(String[] args) {
        new ReplaceString().run();
    }

    public void run()
    {

        System.out.println("Input String:\n");////
        Scanner keyboardScanner = new Scanner(System.in);/////
        String inString = keyboardScanner.nextLine();/////
        String shortMessage = shortifyMessage(inString);
        System.out.println(shortMessage);
    }

    public String shortifyMessage(String str)
    {
        String s = str;
        s = s.replace("call me", "cm");
        s = s.replace("as soon as possible", "asap");
        // Add here some other replacements

        return s;
    }
}
Run Code Online (Sandbox Code Playgroud)


Eng*_*uad 0

使用System.out.print()而不是System.out.println()