java - 取字符并返回等效的键盘
问题描述
所以我正在编写代码,它将接受一个字符并将其字母数字键盘等效为一个字符。问题是,我在一个盒子里得到一个问号作为回报。我检查了输入是否正确。例如,使用 char 'h' 输入,我应该得到一个 char '4' 返回。希望有人能够发现我的错误。代码如下:
public char getDigit(char letter) throws Exception{
switch (letter) {
case 'a': case 'b': case 'c': case '2':
return 2;
case 'd': case 'e': case 'f': case '3':
return 3;
case 'g': case 'h': case 'i': case '4':
return 4;
case 'j': case 'k': case 'l': case '5':
return 5;
case 'm': case 'n': case 'o': case '6':
return 6;
case 'p': case 'q': case 'r': case 's': case '7':
return 7;
case 't': case 'u': case 'v': case '8':
return 8;
case 'w': case 'x': case 'y': case 'z': case '9':
return 9;
default:
throw new IllegalArgumentException("Must be a letter or number on the Alpha-Numeric Keypad.");
}
}
解决方案
您的方法的返回类型是char。
现在使用你的 switch 语句。您返回 2 到 9 范围内的 char 值。现在看一个ASCII 表。
惊喜:这些字符都是“不可打印”的控制字符。因此,您的控制台为您提供“?” 当您打印它们时!
如果你想要'4',你的代码必须返回'4',而不是4!或 52,因为 ASCII 表中的该条目表示“4”。
推荐阅读
- php - 调用未定义函数 GuzzleHttp\Psr7\get_message_body_summary()
- java - 并发程序中的意外值
- c# - C#中的构造函数调用
- vba - 从句柄 (hWnd) 获取窗口实例/对象
- r - geom_bar 和 geom_point 在同一个 ggplot 和同一个组内
- asynchronous - 什么是替代品
go 块返回一个通道而不是返回值,那么当 cljs 没有时,如何在 go 块中提取返回值
<!!
?例如,给定以下代码:
(go (let [response (<! (http/get "https://api.github.com/users" {:with-cr
- python - MNIST 时尚数据集未加载
- c# - 为什么没有释放 MemoryStream?
- python-3.x - 如何根据另一列中的间隔填充基于 Pandas 中其他列的缺失值?
- javascript - 使用Javascript检测到运动时如何触发视频在浏览器中播放