![](/img/trans.png)
[英]How to remove only trailing spaces of a string in Java and keep leading spaces?
[英]How to get leading and trailing spaces in String java
在所有其他相關文章中,人們問到有關在String Java中刪除前導或/和尾隨空格的問題。 現在,我的問題是如何獲得前導或尾隨空格? 我想的是例如使用這樣的函數來獲取尾隨空格:
private String getTrailingSpaces(String str) {
return str.replace(str.replaceFirst("\\s+$", ""), "");
}
但是我不確定這是否正確,是否有更好的方法呢?
嘗試這個
String leading = str.replaceAll("^(\\s+).+", "$1");
String tailing = str.replaceAll(".+?(\\s+)$", "$1");
我不是專家,但是我認為您應該執行2種不同的正則表達式,一種用於前導空格,另一種用於尾隨空格。
private static final Pattern LEADING = Pattern.compile("^\\s+");
private static final Pattern TRAILING = Pattern.compile("\\s+$");
public String getLeadingSpaces(String str) {
Matcher m = LEADING.matcher(str);
if(m.find()){
return m.group(0);
}
return "";
}
public String getTrailingSpaces(String str) {
Matcher m = TRAILING.matcher(str);
if(m.find()){
return m.group(0);
}
return "";
}
嘗試這樣的事情:
private String getTrailingSpaces(String str) {
Pattern p = Pattern.compile(".*(\\s+)$");
Matcher m = p.matcher(str);
String trailing = "";
if (m.matches) {
trailing = m.group(1);
}
return trailing;
}
試試看,不過您需要Apache Commons的ArrayUtils 。
String str1 = " abc ";
char[] cs = str1.toCharArray();
Character[] characters = ArrayUtils.toObject(cs);
// System.out.println(characters.length); // 6
for (Character character : characters) {
if (character.isSpace(character.charValue())) {
// PROCESS ACCORDINGLY
} else {
// PROCESS ACCORDINGLY
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.