[英]Replicating the String.trim() function - Processing 3
我試圖在處理中復制 String.trim() 函數。 我知道 String.trim() 函數會刪除字符串開頭和結尾的制表符 "\\t" 、換行符 "\\n" 和空格。 現在我正在做的是刪除 string 中的所有空格、制表符和換行符。 如何讓它在字符串的開頭和結尾刪除空格、制表符和換行符。
String myStringTrim(String str){
String returnString = "";
for (int i = 0; i < str.length(); i++) {
if(str(str.charAt(i)).equals("\t") || str(str.charAt(i)).equals("\n") ||
str(str.charAt(i)).equals(" ")){
continue;
}
returnString += str.charAt(i);
}
return returnString;
}// myStringTrim()
副本在與原始副本匹配時是完美的,因此請嘗試查看Open JDK 源代碼並執行以下操作:
public String yourTrim() {
int len = value.length;
int st = 0;
char[] val = value;
while ((st < len) && (val[st] <= ' ')) {
st++;
}
while ((st < len) && (val[len - 1] <= ' ')) {
len--;
}
return ((st > 0) || (len < value.length)) ? substring(st, len) : this;
}
然后為此目的使用正則表達式。 它將通過從提供的字符串中檢索匹配來產生相同的結果。 考慮到你只需要一個詞,你只需要將自己加入比賽組(0)。
String mydata = " my test ";
Pattern p = Pattern.compile("\\w+");
Matcher m = p.matcher(mydata);
if (m.find()){
String result = m.group(0);
System.out.format(result);
}
輸出:
myTest
編輯:
由於您希望支持諸如“我的測試”之類的正則表達式,因此我添加了一個不同的正則表達式,您可以為此目的使用它。
String mydata = " my test \n";
Pattern p = Pattern.compile("\\w+[\\w\\s]*\\w+");
輸出:
my test
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.