2013-03-15 190 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))); 
      } 
     } 
    } 
相關問題