2009-09-25 14 views
24

Jak wstawić ciąg znaków zawierający podwójne cudzysłowy na początku StringBuilder i String?Wstaw ciąg znaków na początku kolejnego ciągu znaków

Np

StringBuilder _sb = new StringBuilder("Sam"); 

Muszę wstawić ciąg "Hello" do początku "Sam" i O/P jest "Hello Sam".

String _s = "Jam"; 

Potrzebuję wstawić ciąg "Hello" na początku "Jam", a O/p to "Hello Jam".

Jak to osiągnąć?

+0

Nie masz na myśli, wstawić napis Jam do końca Hello? –

+0

Nie, przywitaj się z początkiem Jam jako _s zainicjalizowany przez Jam –

Odpowiedz

34

W pierwszym przypadku odbywa się za pomocą metody insert():

_sb.insert(0, "Hello "); 

Ten ostatni przypadek może być wykonane przy użyciu + przeciążenia operatora na łańcuchach. Ten wykorzystuje StringBuilder za kulisami:

String s2 = "Hello " + _s; 
+0

_s = "Hello" + _ s; pomoże rozwiązać problem: –

+0

@Sri: to jest to, co powiedział! Jeśli myślisz inaczej, prawdopodobnie nie masz podstawowej właściwości Java Strings ... są one NIEMOŻLIWE. –

+0

Opps! Kiedy napisałem komentarz, nie widziałem edytowanej odpowiedzi rozwijanej, która prowadzi do zamieszania :) –

-9

Lepiej jest, jeśli okaże się cudzysłów przy użyciu metody indexof() a następnie dodać ciąg za tym indeksie.

string s="hai"; 
int s=s.indexof("""); 
+0

To nie zadziała, ponieważ "nie jest częścią ciągu" –

+0

Łańcuch nie zawiera '" ' – gkmohit

6

Ściśle mówiąc, nie można wstawić łańcucha na początku innego. Ciągi w Javie są niezmienne.

Kiedy piszesz:

String s = "Jam"; 
s = "Hello " + s; 

jesteś rzeczywiście powodując nowy obiekt String być tworzone, które jest połączeniem „Hello” i „Jam”. Nie wstawiasz znaków do istniejącego obiektu String w ogóle.

-4
import java.lang.StringBuilder; 

public class Program { 
    public static void main(String[] args) { 

    // Create a new StringBuilder. 
    StringBuilder builder = new StringBuilder(); 

    // Loop and append values. 
    for (int i = 0; i < 5; i++) { 
     builder.append("abc "); 
    } 
    // Convert to string. 
    String result = builder.toString(); 

    // Print result. 
    System.out.println(result); 
    } 
} 
+0

Nie odpowiada on oryginalnemu wpisowi, używa łańcuchów i StringBuilder, ale nie" wstawia łańcucha zamkniętego w podwójne cudzysłowy na początku budowania ciągów ". – OYRM

Powiązane problemy