diff --git a/runelite-client/src/main/java/net/runelite/client/util/Text.java b/runelite-client/src/main/java/net/runelite/client/util/Text.java index 6c6e71a7b7..6b7f953d2e 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/Text.java +++ b/runelite-client/src/main/java/net/runelite/client/util/Text.java @@ -1,5 +1,6 @@ /* * Copyright (c) 2018, Joshua Filby + * Copyright (c) 2018, Jordan Atwood * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -24,11 +25,14 @@ */ package net.runelite.client.util; +import java.util.regex.Pattern; + /** * A set of utilities to use when dealing with text. */ public class Text { + private static final Pattern TAG_REGEXP = Pattern.compile("<[^>]*>"); /** * Removes all tags from the given `str`. @@ -38,28 +42,7 @@ public class Text */ public static String removeTags(String str) { - StringBuilder builder = new StringBuilder(str.length()); - boolean inTag = false; - - for (int i = 0; i < str.length(); i++) - { - char currentChar = str.charAt(i); - - if (currentChar == '<') - { - inTag = true; - } - else if (currentChar == '>') - { - inTag = false; - } - else if (!inTag) - { - builder.append(currentChar); - } - } - - return builder.toString(); + return TAG_REGEXP.matcher(str).replaceAll(""); } } diff --git a/runelite-client/src/test/java/net/runelite/client/util/TextTest.java b/runelite-client/src/test/java/net/runelite/client/util/TextTest.java index b8c9fa9511..af5815b0a3 100644 --- a/runelite-client/src/test/java/net/runelite/client/util/TextTest.java +++ b/runelite-client/src/test/java/net/runelite/client/util/TextTest.java @@ -37,6 +37,8 @@ public class TextTest assertEquals("Zezima (level-126)", Text.removeTags("Zezima (level-126)")); assertEquals("", Text.removeTags("")); assertEquals("Not so much.", Text.removeTags("Not so much.")); + assertEquals("Use Item -> Man", Text.removeTags("Use Item -> Man")); + assertEquals("a < b", Text.removeTags("a < b")); assertEquals("Remove no tags", Text.removeTags("Remove no tags")); }