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

How to extract a specific substring in Java

我有一个字符串,我定义为

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

我将其应用于 JButton 以获得 2 行文本,并且效果很好。当我调用 JButton.getText() 方法时,它 returns 整个字符串。我想要的是获取字符串 returns,并从中获取字符串 "Line1Line2"。 (所以我想删除所有 HTML 代码,只获取屏幕上显示的文本。)我尝试使用类似

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

然后对所有其他“<(stuff)>”执行相同的操作,但如果我随后打印该字符串,我仍然会得到全部内容。我认为使用正则表达式是比手动删除所有“<(stuff)>”更好的方法,但我不知道如何。

如有任何帮助,我们将不胜感激!

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

所以你的代码应该是

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

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

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

等等应该做的事情。

String 也有一个 replaceAll() 方法。

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

还要记住 java 中的字符串是不可变的,此操作将 return 一个包含您的结果的新字符串