2013-03-15 207 views
11

我想一个字符串粘成的另一个字符串,当然中间:将一个字符串到另一个字符串中的Java

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

我怎么会把串两成字符串之一,所以它会读一些类似MonkeMonkeyyPony?

编辑︰我应该已经更清楚,基本上我想要做的是无数次插入“MonkeyPony”中间的“猴子”,所以第一次它会读第二次“MonkeMonkeyyPony”它会读取“MonkeMonkeykeyyPony”等。

回答

10

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

// 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; 
} 
+0

会有一种方式来循环这个以及所以而不是只是插入到中间它将MonkeMonMonMonMonkeykeykeykeyyPony? – user2150807 2013-03-15 22:32:22

+0

编辑原始问题更清晰 – user2150807 2013-03-15 22:55:28

+0

效率较低,但您可以将此方法链接几次。 – corsiKa 2013-03-16 23:37:40

16

你并不需要循环,因为环路主已经处理。所以你只需要使用String的substring函数来重建一个由前半部分组成的字符串,然后是第二部分,然后是第一部分的另一半。

我怎么知道循环已经在主要?因为我给你分配了这个家庭作业。

+10

呃,那个刺痛......没想到你的老师是那么聪明,现在你...... – WiErD0 2014-12-17 15:58:57

0

你不需要使用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))); 
      } 
     } 
    } 
相关问题