Java 从输入更改为扫描仪
我正试图将它从一个输入框更改为一个Scanner类,但在这样做时遇到了问题 这是一个程序,它将文字输入到电话号码中,这里是代码。任何帮助都将不胜感激,如果有什么我可以做的回报,我会很乐意这样做Java 从输入更改为扫描仪,java,Java,我正试图将它从一个输入框更改为一个Scanner类,但在这样做时遇到了问题 这是一个程序,它将文字输入到电话号码中,这里是代码。任何帮助都将不胜感激,如果有什么我可以做的回报,我会很乐意这样做 // declare imports import java.util.Scanner; import javax.swing.JOptionPane; import java.util.*; public class Telephone { public static void main(Str
// declare imports
import java.util.Scanner;
import javax.swing.JOptionPane;
import java.util.*;
public class Telephone {
public static void main(String[] args) {
// ask for the phone number (in letters)
char letter;
String inputMessage = "Please enter the number in Letters " + "or enter '#' to stop the program ";
String inputString = JOptionPane.showInputDialog(inputMessage);
String outputString = "";
String outputMessage = "";
int digit = 0;
int x = 0;
for (int i = 0; i < inputString.length(); i++)
System.out.print(inputString.charAt(x)); {
while (inputString.charAt(x) != '#') {
letter = Character.toUpperCase(inputString.charAt(x));
x++;
// make sure its not a number
if (letter >= 'a' && letter <= 'z') if (letter >= 'A' && letter <= 'Z') {
digit++;
switch (letter) {
case 'A':
case 'B':
case 'C':
outputString += "2";
break;
case 'D':
case 'E':
case 'F':
outputString += "3";
break;
case 'G':
case 'H':
case 'I':
outputString += "4";
break;
case 'J':
case 'K':
case 'L':
outputString += "5";
break;
case 'M':
case 'N':
case 'O':
outputString += "6";
break;
case 'P':
case 'Q':
case 'R':
case 'S':
outputString += "7";
break;
case 'T':
case 'U':
case 'V':
outputString += "8";
break;
case 'W':
case 'X':
case 'Y':
case 'Z':
outputString += "9";
}
if (digit == 7) {
break;
}
if (digit == 3) {
outputString += "-";
}
}
inputMessage = "Enter another set of telephone letters";
}
JOptionPane.showMessageDialog(null, outputString, "Telephone Program", JOptionPane.PLAIN_MESSAGE);
}
//声明导入
导入java.util.Scanner;
导入javax.swing.JOptionPane;
导入java.util.*;
公共电话{
公共静态void main(字符串[]args){
//询问电话号码(字母)
字符字母;
String inputMessage=“请以字母“+”输入数字或输入“#”停止程序”;
String inputString=JOptionPane.showInputDialog(inputMessage);
字符串outputString=“”;
字符串outputMessage=“”;
整数位数=0;
int x=0;
对于(int i=0;i 如果(字母>='a'&&letter='a'&&letter修改显示JopOptions窗格的行,如下所示
//String inputString = JOptionPane.showInputDialog(inputMessage);
System.out.println(inputMessage);
Scanner sc = new Scanner(System.in);
String inputString = sc.nextLine();
因此,您可以执行以下操作:
package test;
import java.util.Scanner;
public class Telephone {
public static void main(String[] args) {
// ask for the phone number (in letters)
char letter;
String inputMessage = "Please enter the number in Letters " + "or enter '#' to stop the program ";
// String inputString = JOptionPane.showInputDialog(inputMessage);
System.out.println(inputMessage);
Scanner sc = new Scanner(System.in);
String inputString = sc.nextLine();
String outputString = "";
String outputMessage = "";
int digit = 0;
int x = 0;
for (int i = 0; i < inputString.length(); i++) {
System.out.print(inputString.charAt(x));
}
while (inputString != null && inputString.trim().length() > 0 && inputString.charAt(x) != '#') {
letter = Character.toUpperCase(inputString.charAt(x));
x++;
// make sure its not a number
// if (letter >= 'a' && letter <= 'z') {
if (x >= inputString.length()) {
x = 0;
System.out.println("\n" + outputString);
// JOptionPane.showMessageDialog(null, outputString, "Telephone Program", JOptionPane.PLAIN_MESSAGE);
// inputString = JOptionPane.showInputDialog(inputMessage);
System.out.println(inputMessage);
inputString = sc.nextLine();
} else if (letter >= 'A' && letter <= 'Z') {
digit++;
switch (letter) {
case 'A':
case 'B':
case 'C':
outputString += "2";
break;
case 'D':
case 'E':
case 'F':
outputString += "3";
break;
case 'G':
case 'H':
case 'I':
outputString += "4";
break;
case 'J':
case 'K':
case 'L':
outputString += "5";
break;
case 'M':
case 'N':
case 'O':
outputString += "6";
break;
case 'P':
case 'Q':
case 'R':
case 'S':
outputString += "7";
break;
case 'T':
case 'U':
case 'V':
outputString += "8";
break;
case 'W':
case 'X':
case 'Y':
case 'Z':
outputString += "9";
}
if (digit == 7) {
break;
}
if (digit == 3) {
outputString += "-";
}
}
// }
inputMessage = "Enter another set of telephone letters";
}
System.out.println("\n" + outputString);
// JOptionPane.showMessageDialog(null, outputString, "Telephone Program", JOptionPane.PLAIN_MESSAGE);
}
}
封装测试;
导入java.util.Scanner;
公共电话{
公共静态void main(字符串[]args){
//询问电话号码(字母)
字符字母;
String inputMessage=“请以字母“+”输入数字或输入“#”停止程序”;
//String inputString=JOptionPane.showInputDialog(inputMessage);
System.out.println(inputMessage);
扫描仪sc=新的扫描仪(System.in);
String inputString=sc.nextLine();
字符串outputString=“”;
字符串outputMessage=“”;
整数位数=0;
int x=0;
对于(int i=0;i0&&inputString.charAt(x)!='#'){
字母=Character.toUpperCase(inputString.charAt(x));
x++;
//确保它不是一个数字
//如果(字母>='a'&&letter=inputString.length()){
x=0;
System.out.println(“\n”+输出字符串);
//showMessageDialog(null,输出字符串,“电话程序”,JOptionPane.PLAIN\u消息);
//inputString=JOptionPane.showInputDialog(inputMessage);
System.out.println(inputMessage);
inputString=sc.nextLine();
}如果(字母>='A'&&letter)你为什么不尝试缩进你的代码呢?这真的有助于可读性…欢迎使用SO。请阅读和,以获得关于编写好问题的提示。主要是,这不是一个论坛,你可以问一些不集中的问题,如“帮助我改进代码”或“告诉我有什么问题”除了代码本身之外,不提供任何详细信息。请告诉我们您遇到了什么问题,并说明到目前为止您为解决此问题所做的工作。顺便说一句:也许您可以考虑使用字符的ascii值来避免大量的切换情况。'A'是65,'B'66等等。除了最后一个块之外,其他所有块都是3..(v-65)/3)+2或类似的东西应该为所有块返回正确的数字,但最后一个块除外。当我用修改替换它并运行程序时,我得到了CCCCCCC作为输出抱歉,我认为它工作正常。我用一个完整的工作示例编辑了答案,显示了我认为您需要的内容。