-18

我试图将一个字符串插入另一个字符串的中间,例如:

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

我如何将字符串 2 放入字符串 1 中,这样它就会读到像 MonkeMonkeyyPony 这样的东西?

我想要做的是多次将“Monkey”插入“MonkeyPony”的中间,所以第一次它会读“MonkeMonkeyyPony”,第二次会读“MonkeMonkeyyPony”等等。

4

3 回答 3

41

您必须将第一个字符串的两个子字符串连接到第二个字符串的末端。

// 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 回答