2013-03-15 16 views
11

Sto cercando di attaccare una stringa in mezzo un'altra stringa, es:Inserimento di una stringa in un altro java stringa

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

come faccio a mettere stringa due in stringa di uno così sarebbe leggere qualcosa di simile MonkeMonkeyyPony? EDIT: avrei dovuto essere più chiaro, in pratica quello che sto cercando di fare è inserire "Monkey" nel mezzo di "MonkeyPony" numerose volte, quindi per la prima volta avrebbe letto "MonkeMonkeyyPony" sul secondo tempo avrebbe letto "MonkeMonkeykeyyPony" ecc.

risposta

10

È necessario concatenare due sottostringhe della prima stringa sulle estremità del secondo.

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

ci sarebbe un modo per loop anche questo modo invece di inserirla nel mezzo sarebbe MonkeMonMonMonMonkeykeykeykeyyPony? – user2150807

+0

modificato la domanda originale per essere più chiara – user2150807

+0

Sarebbe meno efficiente, ma è possibile collegare questo metodo alcune volte. – corsiKa

16

Non è necessario eseguire un ciclo, perché il ciclo è già gestita in principale. Quindi è sufficiente utilizzare la funzione di sottostringa di String per ricostruire una stringa composta dalla prima metà di uno, quindi il secondo, poi l'altra metà del primo.

Come faccio a sapere se il loop è già in main? Perché ti ho assegnato questo compito.

+10

Uff, che punge ... Non pensavo che il tuo insegnante fosse così intelligente, ora hai ... – WiErD0

0

Per eseguire questa operazione non è necessario utilizzare StringBuilder o altri metodi complessi. Ecco il modo più semplice per raggiungere questo obiettivo. In questo metodo ho appena usato i semplici metodi 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))); 
      } 
     } 
    } 
Problemi correlati