java - 如何让我的 for 循环转到下一个字符?
问题描述
我正在创建一个代码,它将根据输入字母输出一个数字。我的代码卡在了重复执行字符 0 的循环中。朋友说 char Check = userInput.charAt(numTelephone); 会修复它。当我将它放入我的代码中时,我收到了错误:错误:无法取消引用字符 char Check = userInput.charAt(numTelephone);
import java.util.Scanner;
public class PhoneWords {
public static void main(String []args){
Scanner scnr = new Scanner(System.in);
int numTelephone;
char userInput;
userInput = scnr.next().charAt(0);
System.out.println("Enter a telephone number using letters (EXIT to quit): ");
System.out.println("The corresponding telephone number is: ");
if ((userInput >= 'A') || (userInput <= 'Z') || (userInput >= 'a') || (userInput <= 'z')){
for (numTelephone = 0; numTelephone < 7; numTelephone++){
char Check = userInput.charAt(numTelephone);
if (numTelephone == 3){
System.out.print("-");
}
switch (userInput) {
case 'A':
case 'a':
case 'B':
case 'b':
case 'C':
case 'c':
System.out.print("2");
break;
case 'D':
case 'd':
case 'E':
case 'e':
case 'F':
case 'f':
System.out.print("3");
break;
case 'G':
case 'g':
case 'H':
case 'h':
case 'I':
case 'i':
System.out.print("4");
break;
case 'J':
case 'j':
case 'K':
case 'k':
case 'L':
case 'l':
System.out.print("5");
break;
case 'M':
case 'm':
case 'N':
case 'n':
case 'O':
case 'o':
System.out.print("6");
break;
case 'P':
case 'p':
case 'Q':
case 'q':
case 'R':
case 'r':
case 'S':
case 's':
System.out.print("7");
break;
case 'T':
case 't':
case 'U':
case 'u':
case 'V':
case 'v':
System.out.print("8");
break;
case 'W':
case 'w':
case 'X':
case 'x':
case 'Y':
case 'y':
case 'Z':
case 'z':
System.out.print("9");
break;
default:
break;
}
}
}
}
}
解决方案
char 类型是原始类型——不是对象——所以它不能被取消引用
取消引用是访问引用所引用的值的过程。由于 char 已经是一个值(不是引用),它不能被取消引用。
所以从给定的输入中获取字符,例如:
char userInput = scnr.nextLine().charAt(0);
并评论您朋友建议的这一行,该行未在任何地方使用:
//char Check = userInput.charAt(numTelephone);
推荐阅读
- oracle - Install Oracle Apex in Microsoft server 2016
- python - 从函数返回列表
- abap - 将 se16n 限制为某些表行
- node.js - How to check if field exists for a specified id in MongoDb
- node.js - Auto-increment based on two columns in Sequelize for postgres
- javassist - 使用 Javassist 检索私有方法信息
- j - 为什么右动词 ] 返回值而不是左动词 [?
- javascript - Disable opening quick find on FireFox
- java - After upgrading Java to 11 I get ExceptionInInitializerError
- entity-framework - how to write distinct count query in Linq