Java 尝试将消息中的字母转换为数字时未获得任何输出
我试图制作一个程序,用户输入一条消息,程序将其转换成数字(例如a=1,b=2,等等)。但是,我没有得到任何输出!任何帮助都将不胜感激。我的代码如下Java 尝试将消息中的字母转换为数字时未获得任何输出,java,arrays,Java,Arrays,我试图制作一个程序,用户输入一条消息,程序将其转换成数字(例如a=1,b=2,等等)。但是,我没有得到任何输出!任何帮助都将不胜感激。我的代码如下 import java.io.PrintStream; import java.util.*; public class AllRand25 { public static void main(String[] args) { int[] letterArray; int[] wordArray; int l = 0;
import java.io.PrintStream;
import java.util.*;
public class AllRand25 {
public static void main(String[] args) {
int[] letterArray;
int[] wordArray;
int l = 0;
String messageWord;
char messageChar;
letterArray = new int[26];
int[] messageArray = new int[10];
int y = 0;
System.out.print("Enter your message");
Scanner scanner = new Scanner(System.in);
String message = scanner.nextLine();
while (scanner.hasNext()) {
messageWord = scanner.next(message);
l = messageWord.length();
Scanner charScan = new Scanner(messageWord);
for(int i = 0; i < messageWord.length(); i++){
messageChar = messageWord.charAt(i);
if (messageChar == 'a' || messageChar == 'A' || messageChar == 'A') {
messageArray[y] = 1;
} else if (messageChar == 'b' || messageChar == 'B') {
messageArray[y] = 2;
} else if (messageChar == 'c' || messageChar == 'C') {
messageArray[y] = 3;
} else if (messageChar == 'd' || messageChar == 'D') {
messageArray[y] = 4;
} else if (messageChar == 'e' || messageChar == 'E') {
messageArray[y] = 5;
} else if (messageChar == 'f' || messageChar == 'F') {
messageArray[y] = 6;
} else if (messageChar == 'g' || messageChar == 'G') {
messageArray[y] = 7;
} else if (messageChar == 'h' || messageChar == 'H') {
messageArray[y] = 8;
} else if (messageChar == 'i' || messageChar == 'I') {
messageArray[y] = 9;
} else if (messageChar == 'j' || messageChar == 'J') {
messageArray[y] = 10;
} else if (messageChar == 'k' || messageChar == 'K') {
messageArray[y] = 11;
} else if (messageChar == 'l' || messageChar == 'L') {
messageArray[y] = 12;
} else if (messageChar == 'm' || messageChar == 'M') {
messageArray[y] = 13;
} else if (messageChar == 'n' || messageChar == 'N') {
messageArray[y] = 14;
} else if (messageChar == 'o' || messageChar == 'O') {
messageArray[y] = 15;
} else if (messageChar == 'p' || messageChar == 'P') {
messageArray[y] = 16;
} else if (messageChar == 'q' || messageChar == 'Q') {
messageArray[y] = 17;
} else if (messageChar == 'r' || messageChar == 'R') {
messageArray[y] = 18;
} else if (messageChar == 's' || messageChar == 'S') {
messageArray[y] = 19;
} else if (messageChar == 't' || messageChar == 'T') {
messageArray[y] = 20;
} else if (messageChar == 'u' || messageChar == 'U') {
messageArray[y] = 21;
} else if (messageChar == 'v' || messageChar == 'V') {
messageArray[y] = 22;
} else if (messageChar == 'w' || messageChar == 'W') {
messageArray[y] = 23;
} else if (messageChar == 'x' || messageChar == 'X') {
messageArray[y] = 24;
} else if (messageChar == 'y' || messageChar == 'Y') {
messageArray[y] = 25;
} else if (messageChar == 'z' || messageChar == 'Z') {
messageArray[y] = 26;
}
else if (messageChar == ' ') {
messageArray[y] = 27;
}
y++;
}
}
for(int i = 0; i < messageArray.length; i++){
System.out.println(messageArray[i]);
}
}
}
导入java.io.PrintStream;
导入java.util.*;
公共类AllRand25{
公共静态void main(字符串[]args){
int[]字母数组;
int[]字数组;
int l=0;
字符串消息字;
char-messageChar;
字母数组=新整数[26];
int[]messageArray=newint[10];
int y=0;
系统输出打印(“输入您的消息”);
扫描仪=新的扫描仪(System.in);
字符串消息=scanner.nextLine();
while(scanner.hasNext()){
messageWord=scanner.next(消息);
l=messageWord.length();
Scanner charScan=新扫描仪(messageWord);
for(int i=0;i
错误(或至少“A”)在这一行:
messageWord = scanner.next(message);
您正在将message
指定为参数。这似乎是错误的,因为next(字符串模式)
需要一个必须匹配下一个输入序列的正则表达式。只需调用此方法的无参数版本 错误(或至少“an”)在这一行:
messageWord = scanner.next(message);
您正在将
message
指定为参数。这似乎是错误的,因为next(字符串模式)
需要一个必须匹配下一个输入序列的正则表达式。只需调用此方法的无参数版本 在我看来,现在的问题不是你的代码没有给出结果,而是它永远不会结束。它无限地运行
您需要为此重写整个代码。我不认为有任何快速修复方法可以让这一切按照你的意愿进行
我可以建议你在课堂上帮助你完成这个项目吗
这是一种将字符串用作索引数组而不是一个对象的方法。它可以让你想做的事情变得更容易。现在我看到的问题不是你的代码没有给出结果,而是它永远不会结束。它无限地运行 您需要为此重写整个代码。我不认为有任何快速修复方法可以让这一切按照你的意愿进行 我可以建议你在课堂上帮助你完成这个项目吗
这是一种将字符串用作索引数组而不是一个对象的方法。它可以让你想做的事情变得更容易。一方面,while循环在
For
-循环通过messageArray之前结束,while
循环甚至在通过messageArray
循环的for
-循环之前就结束了。之所以没有看到任何内容,是因为您检索了外部while()
循环之外的输入,而完全忘记了对其执行任何有用的操作。
试着注释掉这一行
String message = scanner.nextLine();
您的程序将运行(但仍然存在ArrayIndexOutOfBoundsException,因此您也需要修复该异常)。之所以看不到任何内容,是因为您在外部while()
循环之外检索了输入,而完全忘记了对其执行任何有用的操作。
试着注释掉这一行
String message = scanner.nextLine();
并且您的程序将运行(但是仍然存在ArrayIndexOutOfBoundsException,所以您需要修复t