字符到 phone 数字转换器 java
Characters to phone numbers converter java
我如何修改程序以允许用户输入超过 1 个单词并在输出中每 4 位数字后有一个连字符?我是否在 while 循环的末尾创建另一个循环?我该怎么办?
import java.util.Arraylist;
import java.util.list;
import java.util.Scanner;
{ public static void main (String[] args)
{
Scanner console = new Scanner(System.in);
List<String> input = new ArrayList<String>();
String line = console.nextLine();
while(!line.equals("")) {
input.add(line);
line = console.nextLine();
}
for(String Letter: input)
{
System.out.println("Enter the a word to be converted : ");
String Letter = console.nextLine();
Letter = Letter.replaceAll("\s", "");
Letter = Letter.toLowerCase();
String Number="";
int count=0;
int i=0;
while(count < Letter.length())
{
switch(Letter.charAt(i)) {
case 'A':case 'B':case 'C': case 'a': case 'b': case 'c':
Number += "2";
count++;
break;
case 'D':case 'E':case 'F': case 'd': case 'e': case 'f': Number += "3";
count++;
break;
case 'G':case 'H':case 'I': case 'g': case 'h': case 'i': Number += "4";
count++;
break;
case 'J':case 'K':case 'L': case 'j': case 'k': case 'l': Number += "5";
count++;
break;
case 'M':case 'N':case 'O': case 'm': case 'n': case 'o': Number += "6";
count++;
break;
case 'P':case 'R':case 'S': case 'p': case 'r': case 's': Number += "7";
count++;
break;
case 'T':case 'U':case 'V': case 't': case 'u': case 'v': Number += "8";
count++;
break;
case 'W':case 'X':case 'Y':case 'Z': case 'w': case 'x': case 'y': case 'z': Number += "9";
count++;
break;
}
if( count==3) { Number += "-";
}
i++;
}
System.out.println( Number );
}
}
}
现在输出
Enter the word to be converted :
callhome
225-54663
预期输出
Enter the words to be converted :
callhome
hereherehereherehere
comecomecomecomecome
225-5466-3
437-3437-3437-3437-3437-3
266-3266-3266-3266-3266-3
请更新代码如下:
if( count==3)
Number += "-";
if(count>4 && ((count+1)%4)==0)
Number += "-";
在循环中使用console.nextLine()
将所有单词放入一个数组列表中。然后你可以遍历数组列表来执行逻辑。对代码的多条评论:
- 您正在将单词转换为大写,然后再转换为小写。您的开关不需要同时查找大小写。
- 您正在检查 count==3 以添加“-”。同样,您可以使用
(count-3)%4 == 0
查看是否在第 4 个字符边界。
- 您不需要也检查“1”吗?
这是将输入输入数组列表的方法。
List<String> input = new ArrayList<String>();
String line = console.nextLine();
while(!line.equals("")) {
input.add(line);
line = console.nextLine();
}
完成后,您可以按如下方式遍历数组:
for(String Letter: input) {
// Whole of your code goes here.
}
注意语法错误。我直接在浏览器里输入
我如何修改程序以允许用户输入超过 1 个单词并在输出中每 4 位数字后有一个连字符?我是否在 while 循环的末尾创建另一个循环?我该怎么办?
import java.util.Arraylist;
import java.util.list;
import java.util.Scanner;
{ public static void main (String[] args)
{
Scanner console = new Scanner(System.in);
List<String> input = new ArrayList<String>();
String line = console.nextLine();
while(!line.equals("")) {
input.add(line);
line = console.nextLine();
}
for(String Letter: input)
{
System.out.println("Enter the a word to be converted : ");
String Letter = console.nextLine();
Letter = Letter.replaceAll("\s", "");
Letter = Letter.toLowerCase();
String Number="";
int count=0;
int i=0;
while(count < Letter.length())
{
switch(Letter.charAt(i)) {
case 'A':case 'B':case 'C': case 'a': case 'b': case 'c':
Number += "2";
count++;
break;
case 'D':case 'E':case 'F': case 'd': case 'e': case 'f': Number += "3";
count++;
break;
case 'G':case 'H':case 'I': case 'g': case 'h': case 'i': Number += "4";
count++;
break;
case 'J':case 'K':case 'L': case 'j': case 'k': case 'l': Number += "5";
count++;
break;
case 'M':case 'N':case 'O': case 'm': case 'n': case 'o': Number += "6";
count++;
break;
case 'P':case 'R':case 'S': case 'p': case 'r': case 's': Number += "7";
count++;
break;
case 'T':case 'U':case 'V': case 't': case 'u': case 'v': Number += "8";
count++;
break;
case 'W':case 'X':case 'Y':case 'Z': case 'w': case 'x': case 'y': case 'z': Number += "9";
count++;
break;
}
if( count==3) { Number += "-";
}
i++;
}
System.out.println( Number );
}
}
}
现在输出
Enter the word to be converted :
callhome
225-54663
预期输出
Enter the words to be converted :
callhome
hereherehereherehere
comecomecomecomecome
225-5466-3
437-3437-3437-3437-3437-3
266-3266-3266-3266-3266-3
请更新代码如下:
if( count==3)
Number += "-";
if(count>4 && ((count+1)%4)==0)
Number += "-";
在循环中使用console.nextLine()
将所有单词放入一个数组列表中。然后你可以遍历数组列表来执行逻辑。对代码的多条评论:
- 您正在将单词转换为大写,然后再转换为小写。您的开关不需要同时查找大小写。
- 您正在检查 count==3 以添加“-”。同样,您可以使用
(count-3)%4 == 0
查看是否在第 4 个字符边界。 - 您不需要也检查“1”吗?
这是将输入输入数组列表的方法。
List<String> input = new ArrayList<String>();
String line = console.nextLine();
while(!line.equals("")) {
input.add(line);
line = console.nextLine();
}
完成后,您可以按如下方式遍历数组:
for(String Letter: input) {
// Whole of your code goes here.
}
注意语法错误。我直接在浏览器里输入