首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将输入的单词数(如7)转换为字符(如@)

将输入的单词数(如7)转换为字符(如@)
EN

Stack Overflow用户
提问于 2009-10-18 03:32:51
回答 3查看 3.9K关注 0票数 1

因此,如果用户使用Scanner键入seven,则输出将是@ (7)。我将不得不使用for loop语句,但我至少可以弄清楚这一点。只是需要帮助找出一种方法,将单词数字转换为数字,最后转换为随机字符。

EN

回答 3

Stack Overflow用户

发布于 2009-10-17 20:19:04

您需要做的第一件事是将一个有效的数字字符串"ten“、”25“等转换为一个数字,然后将该数字传递到循环中。

因此,您基本上需要编写一个令牌解析器来将单词转换为数字。然后,定义标记将允许您轻松地转换为int。(在本例中,我将只处理in )。

显而易见的标记:

  1. 一、二、三等(一到十九)。(将其称为digit).
  2. twenty,30、40等(20到90)。(称其为十)
  3. 百、千等(称其为幂)

使用“”、“和”和"-“作为分隔符(书写106或25的常用方式)。

然后,您可以将字符串解析为标记,这将为您提供转换为int的规则。从右边开始,从左边开始,你要遵循一定的规则。一次递归地使用两个令牌。在此过程中添加。幂是一种特殊情况,可以乘以前面的数字。

例如,“127”将转换为以下标记:

数字幂十位数字

这将给出使用规则(数字+十)+(数字*幂)

(7 + 20) + (1 * 100) = 127

在转换之后,您可以使用for循环轻松地转换为重复的字符串。

我希望这能让你在正确的方向上开始。

票数 2
EN

Stack Overflow用户

发布于 2009-10-17 19:58:40

我将不得不使用

循环语句,但我至少可以弄清楚。

我在这里看不到太多关于面向对象方法的东西。我讨厌看到人们使用一种面向对象的语言并用它来编写Fortran。

从一个对象开始,将这个问题分解为几个部分:

在不考虑输入或字符串中的output.

  • Reading的情况下,将单词转换为数字并来回转换,将其解析为单词,然后进行验证,因为您无法接受所有字符串。

  • 您的特殊输出需要。

就数字、字符串和扫描器而言,不要在原子级别上进行思考。创建一个抽象;想象一个对象并开始分解。

票数 0
EN

Stack Overflow用户

发布于 2009-10-17 20:17:40

你应该对这个问题说得更具体一些。据我所知,这是一个非常基本的问题解决方案(一个非常有限的解决方案)。

代码语言:javascript
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1583021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档