我在 java 标签框中输入摄氏度的符号时遇到麻烦。
我参考了一本书,得到了以下输入学位符号的说明:
确保 numlock 已打开
然后按 Alt 输入 0186
但问题是,当我在笔记本电脑上按下 numlock(它也是我的 F11 键)时,它会打开构建主项目的窗口。
其次,当我按 Alt 并键入 0186 时出现在标签中。
你能描述一下这个数字(0186)是什么,以及为什么我们不能简单地使用 186 而不是 0186。
首先,一些背景知识:每种字体都有大约 26 到 20'000 个不同的“字形”(“a”是“小写 A”的字形,即您认为有意义的形状)。Unicode 标准列出了所有这些。
由于字形比键盘上的键多得多,因此必须找到解决方案。该解决方案是Alt+字符代码。请参阅此处获取列表:Windows Alt 键代码。它还包含如何输入代码的详细说明。
顺便说一下,代码°
不是0186。0176
要在您的笔记本电脑上启用数字锁定(它的键比标准的 105 键键盘更少),您需要按“功能”键(通常在左下角某处的蓝色 F)加上F11
最后,为什么0176
而不是176
. 实际上,它0
告诉 Windows 您将要输入 Alt 代码。这是必要的,因为 Alt 通常控制 UI(通过快捷方式激活控件和菜单)。
只需从Wikipedia 文章中复制并粘贴它。
或者,如果您在 HTML 上下文中使用 HTML 字符代码°
,例如在 Web 开发中,则可以使用它。
你用的是什么IDE?如果它支持其他可能更容易输入符号的方法,例如从某处复制和粘贴符号(也许是维基百科?)。
您的键盘是否有一个function或fn键,您可以按下该键以使您的F11键作为Num Lock键工作?应该有某种状态 LED 显示Num Lock已成功启用。当您键入Alt+0176 时,您将不得不使用小键盘(在某些笔记本电脑上,这些小键盘可能会与键盘的主要 QWERTY 区域重叠,通常在右侧,从uio此处或附近开始)。该号码必须包含所有 4 位数字,因为它是一个 Unicode 代码点。
据我所知,Java 中没有任何内容可以阻止将特殊字符输入到文本字段中。我可以在我的 PC 和笔记本电脑上的 JTextField 中输入度数符号 º。我不确定您的错误是否与 Java 有关 - 这听起来像是您的笔记本电脑上的密钥冲突,您的 numlock 键也是 F11。您不需要为此操作按住 numlock。尝试在netbeans之外打开num lock ,然后尝试输入数字。
同样,如果您在 netbeans 之外运行程序(您可以双击 dist 文件夹中的 jar 文件),那么这个 F11/numlock 冲突问题应该会消失。
为什么0186是度数符号?
字符 186 是扩展ASCII 图表的一部分。它是几乎所有字体都支持的字符之一,但您不能在键盘上键入它,因为它没有键。Windows 为我们提供了一种输入扩展 ASCII 字符的便捷方法:按住 alt,在数字键盘中键入 ASCII 代码,然后字符出现。
很少有普通用户知道这个技巧。当他们想输入度数符号时。当一个典型的用户想要输入一个度数符号时,用户会寻找一个特殊的字符菜单功能,就像我们在 MS Word 或 Open Office Writer 中找到的那样。熟悉 HTML 的人都知道,您可以通过转义代码在网页中输入特殊字符: º 因此,如果您的字符需要用户输入此符号,您可以给用户一个按钮,将其附加到文本字段中。
当我编写输出以度为单位的程序时,我从未要求用户输入符号。我只是在输出中附加了正确的符号,所以它会很好地显示。例如:
String degree = "" + (char)186;
String answer = celsiusToFaren(userInputC) + degree;