2013-03-15 10 views

cevap

10

İlk dizginin iki alt dizesini, ikincinin sonlarına yapıştırmanız gerekir.

// 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 yanı yüzden bu döngüler için yerine sadece orta takarak olurdu bir yolu var olurdu? – user2150807

+0

, orijinal sorunun daha net olması için düzenledi – user2150807

+0

Daha az verimli olurdu, ancak bu yöntemi birkaç kez zincirleyebilirsiniz. – corsiKa

16

Sen döngü zaten ana işlenme şeklinden nedeniyle döngü gerekmez. Bu yüzden String'in substring fonksiyonunu sadece birincisini, sonra ikincisini, ardından birincisinin diğer yarısını yapılmış bir Stringi yeniden yapılandırmanız yeterlidir.

Döngünün zaten ana olduğunu nasıl anlarım? Çünkü sana bu ödevi verdim.

+10

Uff, o sokar ... Öğretmenin o kadar akıllı olduğunu düşünmedin, şimdi yaptın ... – WiErD0

0

Bunu yapmak için StringBuilder veya başka bir karmaşık yöntem kullanmanız gerekmez. İşte bunu başarmanın en kolay yolu. Bu yöntemde basit String yöntemlerini kullanmıştım.

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))); 
      } 
     } 
    }