-18

ある文字列を別の文字列の真ん中に貼り付けようとしています。例:

String One = "MonkeyPony";
String Two = "Monkey";

文字列2を文字列1に入れて、MonkeMonkeyyPonyのようなものを読み取るにはどうすればよいですか?

私がやろうとしているのは、「MonkeyPony」の真ん中に「Monkey」を何度も挿入することです。つまり、最初は「MonkeMonkeyyPony」と読み、2回目は「MonkeMonMonkeykeyyPony」と読みます。

4

3 に答える 3

41

最初の文字列の 2 つの部分文字列を 2 番目の文字列の末尾に連結する必要があります。

// put the marble in the bag
public static String insert(String bag, String marble, int index) {
    String bagBegin = bag.substring(0,index);
    String bagEnd = bag.substring(index);
    return bagBegin + marble + bagEnd;
}
于 2013-03-15T22:18:43.423 に答える
30

これを達成するために使用できますStringBuilder.insert​(int offset, String str)

StringBuilder builder = new StringBuilder("MonkeyPony");
for(/* As often as necessary */) {
    int halfway = (int) (builder.length() / 2);
    builder.insert(halfway, "Monkey");
} return builder.toString();
于 2014-01-16T20:05:19.893 に答える
-3

これを行うために StringBuilder やその他の複雑なメソッドを使用する必要はありません。これを実現する最も簡単な方法を次に示します。このメソッドでは、単純な String メソッドを使用しました。

import java.util.Scanner;

class Insert
{
    public static void main(String[] args)
    {
        System.out.println("Enter First String");
        Scanner scan = new Scanner (System.in);
        String str = scan.next();
        System.out.println("Enter Second String");
        Scanner scan2 = new Scanner (System.in);
        String str1 = scan2.next();
        int i = str.length();
        int j = i/2;

        if (i % 2 == 0)                    //Condition For Even
        {
            System.out.println(str.substring(0,j) + str1 + str.substring(j-1,(str.length() - 1)));
        }
        else 
        {
            System.out.println(str.substring(0,j) + str1 + str.substring(j,(str.length() - 0)));
        }
    }
}
于 2017-07-21T04:30:43.740 に答える