0

我对这一切都是全新的,所以我正在尝试编写一段简单的代码,允许用户输入文本(保存为字符串),然后让代码搜索单词的位置,替换它并将字符串重新连接在一起。IE:

“我喜欢吃午饭”

foo 位于位置 7

新的输入是:我喜欢 Foo 吃午饭

到目前为止,这是我所拥有的:

import java.util.Scanner;

public class FooExample
{

public static void main(String[] args) 
    {

    /** Create a scanner to read the input from the keyboard */

    Scanner sc = new Scanner (System.in);

    System.out.println("Enter a line of text with foo: ");
    String input = sc.nextLine();
    System.out.println();
    System.out.println("The string read is: " + input);


    /** Use indexOf() to position of 'foo' */

    int position = input.indexOf("foo");
    System.out.println("Found \'foo\' at pos: " + position);

            /** Replace 'foo' with 'Foo' and print the string */

    input = input.substring(0, position) + "Foo";
    System.out.println("The new sentence is: " + input);

问题出现在最后——我不知道如何将句子的其余部分附加到连接上:

input = input.substring(0, position) + "Foo";

我可以得到要替换的单词,但我正在为如何将其余的字符串附加上而摸不着头脑。

4

3 回答 3

1
input = input.substring(0,position) + "Foo" + input.substring(position+3 , input.length());

或者干脆你可以使用替换方法。

input = input.replace("foo", "Foo");
于 2013-01-29T12:50:15.270 回答
0

稍微更新 Achintya 发布的内容,以考虑到您不想再次包含“foo”:

input = input.substring(0, position) + "Foo" + input.substring(position + 3 , input.length());
于 2013-01-29T12:52:52.493 回答
0

这可能有点矫枉过正,但如果您正在寻找句子中的单词,您可以轻松使用 StringTokenizer

            StringTokenizer st = new StringTokenizer(input);
            String output="";
            String temp = "";
            while (st.hasMoreElements()) {
               temp = st.nextElement();
        if(temp.equals("foo"))
                       output+=" "+"Foo";
                    else
                       output +=" "+temp;
    }
于 2013-01-29T12:55:20.470 回答