2017-02-02 5 views
0

iwie ersetzen String mit String

public static void main(String[] args) { 

    StringBuffer stbf=new StringBuffer("la la la"); 
    int k=1; 
    String a= "wkj" ; 
    String s1 = null; 
    for(int i=0;i<3;i++){ 
     stbf.insert(1, a); 
    } 
    System.out.println(stbf); 

als Ergebnis jeder zweiten Buchstaben in jedem Wort mit String-Ausdruck ersetzen, muss ich lwkj lwkj lwkj

+0

Also, was tut Ihr Code jetzt? und was erwartest du? –

+0

'stbf = stbf.replaceAll (" la "," lwkj ");' wird den Trick machen – emotionlessbananas

Antwort

4
String input = "la la la"; 
String replacement = "wkj"; 
String output = input.replaceAll("\\b(\\w)\\w", "$1"+replacement); 
System.out.println("input: " + input); 
System.out.println("output: " + output); 

Die regex \b(\w)\w wird sehen wollen Passen Sie die ersten zwei Zeichen jedes Worts in der Sequenz an, und das Ersetzen verwendet das erste (erfasste) Zeichen, das an die Ersetzung angehängt ist.

Ausgang:

la la la 
lwkj lwkj lwkj 
1

ohne eine vollständige Lösung für das Problem zu geben, sind hier einige Hinweise:

  1. Sie sollten Ihre Eingabestring aufgeteilt (Beispiel war "la la la") in verschiedene Wörter. Verwendung z.B. String.split ("").

  2. Sie können dann jedes einzelne Wort bearbeiten, das erste Zeichen behalten, Ihre Ersatzzeichenfolge einfügen (Beispiel war "wkj") und das dritte und jedes andere Zeichen anfügen. Zu diesem Zweck könnten Sie StringString (0, 1) verwenden, um das erste Zeichen und alle Zeichen ab der dritten Zeichenposition (StringString (2)) zu erhalten. Schau dir die String api an.

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html

Hoffnung, das hilft.

0

String str = "la la la"; 
 
String answer = str.replaceAll("a", "wkj"); 
 
System.out.println("Replace String Is: " + answer);

str.replaceAll ("a", "WKJ")

+0

richtig, aber nicht sehr erweiterbar –