簡體   English   中英

為了Character.isWhitespace的目的,Java是否將“正常”空間視為空格?

[英]Does Java regard a 'normal' space as whitespace for the purposes of Character.isWhitespace?

乍一看,這似乎是不費腦子的。 它可能是,但有一些事情讓我覺得我可能會遺漏一些東西。 首先,Character.isWhitespace的Java文檔似乎將其排除在外。 對於什么是什么以及什么是不允許作為空白的定義似乎是非常明確的('當且僅當')並且第一行不是不間斷的空間。

我一直認為一個普通的“空間” - 當你按空格鍵時你得到的東西 - 作為一個不間斷的空間

那么它在哪里適合列表呢? 該列表在這個問題的最高評級答案中被認為是確定的 - 我只是讀錯了嗎? 此外, 這個問題的第一個評論者似乎有他的疑慮(在不同的背景下)。 然而,當我構造一個簡單的代碼來測試時,它表明正常空間是一個空白的實例,正如人們所期望的那樣。

import static java.lang.Character.isWhitespace;

public class WhitespaceCheck {

   public static void main(String[] args) {

        Character test = ' ';

        if (Character.isWhitespace(test)) {
            System.out.println("Is whitespace!" );                        
        } else {
            System.out.println("Is not whitespace!" );
        }
    }
}

所以,我是否錯誤地閱讀了列表中的第一個項目,它是否在列表中的其他位置,或者列表本身是錯誤的?

你誤會了; 不間斷的空間可以防止換行。 它是一種特殊類型的空間,而不是一個允許換行的“正常”空間。 如果“正常”空間是一個不間斷的空間,那么當你到達屏幕邊緣時線條永遠不會換行,除非你每次都按下手動返回。

第一行說:

它是一個Unicode空格字符(SPACE_SEPARATOR,LINE_SEPARATOR或PARAGRAPH_SEPARATOR),但也不是一個不間斷的空格('\\ u00A0','\\ u2007','\\ u202F')

可在此處找到SPACE_SEPARATOR所涵蓋的unicode空白列表:

https://en.wikipedia.org/wiki/Whitespace_character

SPACE_SEPARATOR的文檔說它指的是一類Unicode字符,而不是特定字符。 標題的“正常”空間(通常由空格鍵產生的空間)包含在此類別中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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