2012-09-07 108 views
2

我有兩個字符串如下:的Java字符串比較HTML標記

String input="<tr><td>Hello world</td></tr>"; 
String output="<body><tr><td>Hello world</td></tr></body>"; 

我想比較兩個字符串,並需要從輸出字符串刪除<body></body>標籤如果輸入字符串不包含<body>標籤。該字符串可以是任意長度的。

如何根據輸入字符串比較和替換輸出字符串? <body>標籤可能與<body ></body > or < body>< /body>,etc類似。

需要找到標籤並根據輸入字符串進行替換。

+0

您是否嘗試過? – AnujKu

回答

1
static String[] combinations = new String[] { 
    "<body>","</body>","< body>","< /body>","<body >" 
}; 

for (int i = 0; i < combinations.length; i++) { 
    if (!input.contains(combinations[i])) { 
     output = output.replace(combinations[i], "");  
    }  
} 
+0

如果輸入字符串不包含,也許你的意思是*!input.contains .. * – Eugene

+1

還你丟棄更換 – epoch

+0

@Eugene的結果謝謝,固定它 – CloudyMarble

1
String resultingOutput = ""; 
if(!(input.contains("<body>")) && !(input.contains("</body>"))){ 
     resultingOutput = output.replace("<body>", "").replace("</body>",""); 
} 
-1
int compare; 
if (!input.contains("<body>")) 
compare = output.replaceAll("<body>","").replaceAll("</body>","").compareTo(input); 
-1
public class Practice { 

public static void main(String[] args) { 
    String input = "<tr><td>Hello world</td></tr>"; 
    String output = "<body><tr><td>Hello world</td></tr></body>"; 
    String tag = "<body>"; 
    String replace = ""; 

    System.out.println("Output : " + validate(input, output, tag, replace)); 

} 

private static String validate(String input, String output, String word, 
     String replace) { 

    if (!(input.contains(word)) && !(input.contains(word))) { 
     output = output.replace(word, replace).replace(word, replace); 
    } 
    return output; 

}} 
+1

雖然代碼本身是正確的,輸出將永遠不會改變在方法的外部,字符串是不可變的 – epoch

+0

已更改現在請檢查downvoters。 – AnujKu

+0

@epoch感謝注意:) – AnujKu