如何在Java中提取特定的子字符串

时间:2015-03-30 08:13:07

标签: java regex substring

我有一个我定义为

的字符串
String string = "<html><color=black><b><center>Line1</center><center>Line2</center></b></font></html>";

我应用于JButton以获得2行文本,并且完美无缺。当我调用JButton.getText()方法时,它返回整个字符串。我想要的是获取它返回的字符串,并从中获取字符串“Line1Line2”。 (所以我想删除所有HTML代码,只是获取屏幕上显示的文字。)我尝试过使用类似

的内容
if(string.contains("<html>"))
    {
        string.replace("<html>", "");
    }

然后为所有其他“&lt;(stuff)&gt;”做同样的事情,但如果我然后打印字符串,我仍然得到整个事情。我认为使用正则表达式比手动删除所有“&lt;(stuff)&gt;”更好,但我不知道如何。

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:3)

string.replace()不会修改字符串:String是不可变的。它返回一个已完成替换的新字符串。

所以你的代码应该是

if (string.contains("<html>")) {
    string = string.replace("<html>", "");
}

答案 1 :(得分:1)

String是不可变的,因此String#replace不会更改String,而是会返回已更改的String

string = string.replace("<html>", "");

等应该做的事情。

答案 2 :(得分:1)

String也有replaceAll()方法。

您可以尝试string.replaceAll("<.*?>", "");

还要记住,java中的字符串是不可变的,此操作将返回一个带有结果的新字符串