[英]Remove junk characters from string in java
我有這樣的字符串:
測試家具-34_TEST& ;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;#38;amp;amp;#38;amp;#38; GT;
我的要求是從上述字符串中刪除所有這些垃圾字符。 所以我的預期輸出將是:
TEST FURNITURE-34_TEST
我試過下面的代碼
public static String removeUnPrintableChars(String str) {
if (str != null) {
str = str.replaceAll("[^\\x00-\\x7F]", "");
str = str.replaceAll("[\\p{Cntrl}&&[^\r\n\t]]", "");
str = str.replaceAll("\\p{C}", "");
str = str.replaceAll("\\P{Print}", "");
str = str.substring(0, Math.min(256, str.length()));
str = str.trim();
if (str.isEmpty()) {
str = null;
}
}
return str;
}
但它什么也不做。 除了查找每個字符並將其替換為空字符之外,有人可以幫我解決從字符串中替換這些字符的通用解決方案嗎?
拆分字符串的簡單方法:
public class Trim {
public static void main(String[] args) {
String myString = "TEST FURNITURE-34_TEST&"
+ "amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;#38;amp;amp;"
+ "#38;amp;#38;gt;";
String[] parts = myString.split("&");
String part1 = parts[0];
System.out.println(parts[0]);
}
}
鏈接到原始線程: 如何在 Java 中拆分字符串
您提供的示例字符串(在您的帖子和評論中)相當荒謬,在我看來,無論生成它們,都應該燒毀......兩次。
在您的字符串上嘗試以下方法。 通過將輸入字符串添加到 2D可移動項目字符串數組,添加您喜歡從輸入字符串中刪除的任何內容。 這個二維數組包含String#replaceAll()方法的准備字符串。 每行的第一個元素包含要替換的特定字符串項的正則表達式(regex),每行的第二個元素包含要替換找到的項的字符串項。
public static String cleanString(String inputString) {
String[][] removableItems = {
{"(&?amp;){1,}", " "},
{"(#38);?", ""},
{"gt;", ""}, {"lt;", ""}
};
String desiredString = inputString;
for (int i = 0; i < removableItems.length; i++) {
desiredString = desiredString.replaceAll(removableItems[i][0],
removableItems[i][1]).trim();
}
return desiredString;
}
您可以使用此方法。 這是標記單詞邊界的工作。
public static String removeUnPrintableChars(String str) {
if(str != null){
str = str.replaceAll("(\\b&?\\w+;#?)", "");
}
return str;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.