2012-09-07 68 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