“白色空间”相反的词语或短语是什么?

3

我目前正在编写一些涉及字符串解析的C#扩展方法,我喜欢使用简洁而描述准确的方法名称。

问题:是否有一个好的词或短语来描述非空白字符?

明确一点,这组字符是可见的,并且如果在纸上打印会消耗墨水。但我不想使用与墨水、纸张或打印相关的术语,也不想假设任何特定颜色。

VisibleCharacters 看起来最具技术精度,但有点长。

NonWhiteSpace 对我来说像是双重否定。我宁愿处理某个东西是什么,而不是它不是什么。

谢谢。


可打印字符 - pala_
我相信“可打印字符”是相当常用的术语。传统上,这个术语不包括控制字符,但对于您的目的可能非常适用。 - Eric J.
可打印是传统用语。但在数字化和远离纸张的情况下,这似乎有些奇怪。也许有一天将不再打印任何东西。我相当确定我过度思考了这个问题。只是希望有人知道我没有想到的术语。 - Casey Plummer
3个回答

4

我选择了“字形”这个词,并称我的函数为HasGlyph。

它似乎正确地涵盖了可读、可见和可打印的字符,但不包括空格或控制字符。它不假设字符正在以图形方式显示或被打印。它不假设任何颜色。它还涵盖了字母、数字和形状。

此外,它也是一个非常简短的名称。

http://en.wikipedia.org/wiki/Glyph

如果你好奇,我的扩展方法:

public static bool HasGlyph(this string value)
{
    if (string.IsNullOrWhitespace(value)) return false;
    // TODO: Not 100% sure if the opposite of the IsNullOrWhitespace method covers what I want, but its good enough until I find out otherwise.
    return true;
}

2
如果你真的指的是除了空格以外的所有字符,我建议使用术语“非空格字符”。这也是Perl文档对于\S字符类所使用的术语,可以查看perlre和perlrecharclass手册页面(搜索\S)。
这个术语:
- 比“非空白”更准确(其中“空白”通常指ASCII码为32的字符) - 不意味着空格不可打印
请注意,这个定义包括像NUL或ESC这样既不是空格(因为它们实际上没有插入任何空格),也不是图形/可打印字符的字符。因此,你可能真正想要限制自己只使用“图形”字符。

我给这个点了赞,因为当你开始处理Unicode字符时,它变得更加复杂,我不认为glyph会很好用。non-whitespace简单明了,涵盖了Unicode,没有任何二次猜测的余地,也不需要查找定义来确定。 - Guy Coder
你有关于Unicode问题的例子吗?比如一个字符的例子? - Casey Plummer

1
根据Unix手册中(man isspace)的内容,您可以称它们为“可打印字符”或“图形字符”:
   isspace()
          checks for white-space characters.  In the "C" and "POSIX" locales,
          these are: space, form-feed ('\f'), newline ('\n'), carriage return ('\r'),
          horizontal tab ('\t'), and vertical tab ('\v').

   isgraph()
          checks for any printable character except space.

1
有趣的是,你的摘录实际上使用了“可打印字符”的术语。 - Marty
你的摘录表明图形和可打印字符包括空格(否则就不需要声明“除空格外”)。除此之外,我认为空白字符是可打印的,因为没有它,每个输出看起来都不同。 - Michael Jaros

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接