2016-06-12 3 views
-3

Ich mag eine Zeichenfolge ersetzen, wenn nicht zwischen Tags ist .. Beispiel: str1 Ersetzen durch str2, wenn sie nicht in <>.wie ein Teil zwischen Tags in Java ersetzen

Eingabestring

<field1_str1>randomvalue_str1</field1_str1><field2_str1 > randomvalue_str1_random_value </field2_str1 >

Ausgabe-String

<field1_str1>randomvalue_str2</field1_str1 ><field2_str1 > randomvalue_str2_random_value </ field2_str1 >

+0

Ist diese Hausaufgabe oder können Sie einen XML-Parser verwenden? Außerdem habe ich die Frage ein paar Mal gelesen, aber ich verstehe nicht wirklich, was Sie tun möchten. –

+0

U kann XML-Parser nicht verwenden, weil der Tag-Name unbekannt ist. –

+0

Sie können mir mit Muster Klasse wenn möglich helfen .. danke –

Antwort

0

Obwohl das Beispiel, das Sie wirklich tut gab helfen, werde ich Ihnen für die Frage der Logik geben Sie in der ersten gab Linie

Str str1="<Heylo>"; 
Str str2="Boo"; 
int stuff=hello.length(); 
if(str1.charAt(0).equals("<"); && str.charAt(stuff).equals(">") 
System.out.println("It is in tags"); 
else 
str1=str2; 
+0

Nicht zu meinem Zweck..als der Tag-Name und die Werte sind dynamisch. –

0

Ausgehend von Ihrem Beispiel, wo die Ersetzung stattfinden soll, möchten Sie die Zeichenfolgen zwischen zwei XML-Tags ersetzen. Es scheint einfacher zu sein, dies als Ersetzen der Zeichenfolgen zu betrachten, die zwischen> und < statt zwischen < und> auftreten. Diese

String input = "<field1_str1>randomvalue_str1</field1_str1><field2_str1 > randomvalue_str1_random_value </field2_str1 >"; 

String str1 = "str1"; 
String str2 = "str2"; 

String replace = input.replaceAll(">([^<]*?)" + str1, ">$1" + str2); 

ersetzen Looks für a> um das Spiel zu beginnen, da wir wollen die Dinge nicht passen innerhalb der Tags. Es wird dann mit allem übereinstimmen, was kein < ist, da dies unsere Übereinstimmung beenden und ein XML-Tag starten würde, und es wird so lange übereinstimmen, bis es str1 findet. Bei einer erfolgreichen Übereinstimmung fügt es den ersten Teil, auf den wir abgestimmt haben, zurück und ersetzt str1 durch str2. Dieser Code gibt das aus, was Sie in der Ausgabezeichenfolge suchen.

+0

Vielen Dank .. :) –

Verwandte Themen