Java 将输入字号(如七)转换为字符(如@)
因此,如果用户使用Scanner键入seven,@@@@@@@(7)将作为输出。我将不得不使用for循环语句,但我至少可以理解这么多。只需要帮助找出一种方法,将字数转换成数字,最后转换成随机字符 我将不得不使用for循环语句,但我至少可以理解这么多 我在这里没有看到太多关于面向对象方法的内容。我讨厌看到人们使用面向对象语言编写Fortran 从一个对象开始,将此问题分解为几个部分:Java 将输入字号(如七)转换为字符(如@),java,algorithm,loops,for-loop,Java,Algorithm,Loops,For Loop,因此,如果用户使用Scanner键入seven,@@@@@@@(7)将作为输出。我将不得不使用for循环语句,但我至少可以理解这么多。只需要帮助找出一种方法,将字数转换成数字,最后转换成随机字符 我将不得不使用for循环语句,但我至少可以理解这么多 我在这里没有看到太多关于面向对象方法的内容。我讨厌看到人们使用面向对象语言编写Fortran 从一个对象开始,将此问题分解为几个部分: 将单词转换成数字并返回,不考虑输入或输出 读取字符串,将其解析为单词,并进行验证,因为您不能接受所有字符串 您的特
不要用数字、字符串和扫描器来考虑这样的原子级别。创建一个抽象概念;想象一个物体并开始分解。你应该更具体地回答这个问题。根据我的理解,这是一个非常基本的问题解决方案(一个非常有限的解决方案)
Scanner-in=新的扫描仪(System.in);
Random rand=新的Random();
String word=in.nextLine().toLowerCase();
整数=0;
//将字号转换为数字。
如果(单词等于(“一”))
数字=1;
else if(单词等于(“二”))
数量=2;
else if(单词等于(“三”))
数字=3;
else if(单词等于(“四”))
数字=4;
else if(单词等于(“五”))
数字=5;
else if(单词等于(“六”))
数字=6;
else if(单词等于(“七”))
数字=7;
else if(单词等于(“八”))
数字=8;
else if(单词等于(“九”))
数字=9;
其他的
System.out.println(“数字不存在”);
//将数字转换为随机字符。
char character=(char)(33+rand.nextInt(94));
//按数字所示的次数打印字符。
for(int i=0;i
您需要做的第一件事是将有效的数字字符串“十”、“二十五”等转换为一个数字,然后将该数字传递到循环中
因此,您基本上需要编写一个令牌解析器来将单词转换为数字。然后,定义标记将允许您轻松地转换为int(在本例中,我只讨论int)
明显的标记:
我希望这能让您从正确的方向开始。展示您目前的工作会很有帮助。输入的内容会是什么样的?较长的数字是否会连字符(例如73对73)?你是从美式英语还是英式英语转换过来的(例如10亿对1百万)?“and”这个词会在数字的前面吗(例如,103对103)?你会想使用equalsIgnoreCase()这样你就不必担心“Seven”、“Seven”等。在if块之前把这个词降格更便宜
Scanner in = new Scanner(System.in);
Random rand = new Random();
String word = in.nextLine().toLowerCase();
int number = 0;
// Convert a word number into a numerical number.
if (word.equals("one"))
number = 1;
else if (word.equals("two"))
number = 2;
else if (word.equals("three"))
number = 3;
else if (word.equals("four"))
number = 4;
else if (word.equals("five"))
number = 5;
else if (word.equals("six"))
number = 6;
else if (word.equals("seven"))
number = 7;
else if (word.equals("eight"))
number = 8;
else if (word.equals("nine"))
number = 9;
else
System.out.println("Number does not exist. ");
// Convert the number into a random character.
char character = (char) (33 + rand.nextInt(94));
// Print the character as many times as the number implies.
for (int i = 0; i < number; i++)
System.out.print(character);