2013-03-15 18 views
11

próbuję trzymać jeden ciąg w środku innego łańcucha, ex:Wkładanie jeden ciąg do innego java ciąg

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

jak bym umieścić ciąg dwa do łańcucha jednej więc byłoby przeczytać coś podobnego MonkeMonkeyyPony?

EDYCJA: Powinienem być bardziej przejrzysty, w zasadzie to, co próbuję zrobić, to wstawianie "Małpy" w środek "MonkeyPony" wiele razy, więc po raz pierwszy przeczytał "MonkeMonkeyyPony" na drugim czas odczytu "MonkeMonMonkeykeyyPony" itp.

Odpowiedz

10

Musisz połączyć dwa podciągi pierwszego ciągu na końcach drugiego.

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

czy byłby to sposób na pętle, więc zamiast wstawiać go do środka, byłby to MonkeMonMonMonMonkeykeykeykeyyPony? – user2150807

+0

zredagował oryginalne pytanie, aby było bardziej zrozumiałe. – user2150807

+0

Byłoby to mniej wydajne, ale można połączyć tę metodę kilka razy. – corsiKa

16

Nie trzeba do pętli to dlatego, że pętla jest już obsługiwane w głównym. Musisz więc użyć funkcji podłańcuchowej String, aby zrekonstruować ciąg złożony z pierwszej połowy jednej, potem drugiej, a potem drugiej połowy pierwszej.

Skąd wiadomo, że pętla jest już w głównym? Ponieważ przydzieliłem ci tę pracę domową.

+10

Uff, to ukłucie ... Nie myślałeś, że twój nauczyciel był taki mądry, teraz ty ... – WiErD0

0

Nie trzeba używać StringBuilder ani żadnej innej złożonej metody, aby to zrobić. Oto najprostszy sposób, aby to osiągnąć. W tej metodzie właśnie wykorzystałem proste metody 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))); 
      } 
     } 
    }