java - 特殊字符的常量?

标签 java apache

是否有任何通用库为常用的分隔符字符(如 ,;" )提供常量,类似于 StringUtils.SPACE/EMPTY/LF/CR

最佳答案

有名称,但不是常量。

    for (int cp = 32; cp < 48; ++cp) {
        System.out.printf("%c : %s%n", cp, Character.getName(cp));
    }

  : SPACE
! : EXCLAMATION MARK
" : QUOTATION MARK
# : NUMBER SIGN
$ : DOLLAR SIGN
% : PERCENT SIGN
& : AMPERSAND
' : APOSTROPHE
( : LEFT PARENTHESIS
) : RIGHT PARENTHESIS
* : ASTERISK
+ : PLUS SIGN
, : COMMA
- : HYPHEN-MINUS
. : FULL STOP
/ : SOLIDUS

使用常量很麻烦,所以我认为没有人付出努力。

你可以自己做,也许使用上面的Character.getName生成枚举,用下划线替换名称中的空白。

enum Chars {
    COMMA(','),
    SEMICOLON(';'),
    EXCLAMATION_SIGN('!');

    private final int ch;
    private static Map<Integer, Chars> map = new HashMap<>();
    static {
        for (Chars c : Chars.values()) {
            map.put(c.ch, c);
        }
    }

    private Chars(int ch) { this.ch = ch; }

    public int toCodePoint() { return ch; }

    public static Chars fromCodePoint(int cp) {
        return map.get(cp);
    }

    @Override
    public String toString() { return new String(new int[]{ ch }, 0, 1); }
}

请注意,枚举也有一个名称 getter ,用于“COMMA”等。

关于java - 特殊字符的常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21437180/

相关文章:

linux - .htaccess 禁用特定 IP 的 mod_security

javascript - 更新后的几分钟内服务器未分发更新的 javascript 文件

php - 在同一台 Apache 服务器上运行 PHP 和 Ruby 有什么问题吗?

java - 通过引用操作 jtree 节点似乎不起作用(swing)

java - 泛型类型 java.util.List 继承

java - Spring @Component HttpGet 执行

php - 在php中上传用户个人资料图片

java - 可能的正则表达式回溯问题?

java - 局部变量 NullPointerException

java - 如何在 Mac 上创建一个允许用户创建目录的 JFileChooser?