从用户输入中替换一个单词

时间:2014-07-15 23:03:52

标签: java input replace string-concatenation

对于一个项目,我需要接受用户输入,例如“我讨厌你”,我需要用“爱”替换“讨厌”这个词。我无法使用全部替换。

我明白我可以使用.indexOf并找到仇恨这个词的位置然后使用连接来形成一个新句子我真的很困惑如何做到这一点。

我会在下面展示我的内容。你也可以记住,我是这个网站和编程的新手。我不只是在这里快速修复,我实际上是想学习这个。我一直在做很多研究,似乎无法找到答案。

import java.util.Scanner;

public class ReplaceLab {
    public static void main(String[]args){

        Scanner input = new Scanner(System.in);
        System.out.print("Please enter a line of text:");
        String userInput = input.nextLine();
        int position = userInput.indexOf("hello");
        System.out.println("I have rephrased that line to read");

    }
}

2 个答案:

答案 0 :(得分:0)

String.replace()将替换输入字符串中的每个ocurrance:

String userInput = input.nextLine();
String replaced = userInput.replace("hate", "love");// Here you have your new string

例如,“我讨厌恨你”将成为“我爱你”。

如果只有第一次出现必须改变(让我的例子“我讨厌爱你”)那么alfasin评论是正确的,String.replaceFirst()将完成工作。

答案 1 :(得分:0)

如果必须使用.indexOf()

String find = "hate";
String replace = "love";

int pos = userInput.indexOf(find);
int pos2 = pos + find.size();

String replaced = userInput.substring(0, pos) + " " + replace + " " + userInput.substring(pos2);

如果您这样做,请确保检查indexOf是否返回有效数字。