簡體   English   中英

如何在String Java中獲得前導和尾隨空格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM