我可以在java中打印文本格式的数字吗?这可能吗?



需要以文本格式打印如下所述的数字格式例子:1234567890输出:onetwothree……等等!

这是可能的吗?

你可以尝试使用Hashmap:https://www.w3schools.com/java/java_hashmap.asp

对于每个数字,创建一个键值对,从整数到字符串,然后使用循环遍历带有数字的字符串,将数字与HashMap进行比较,并将与提供的键匹配的值附加到结果字符串

public static void main(String[] args) {

HashMap<Integer, String> numberWords = new HashMap<Integer, String>();
numberWords.put(1, "One");
numberWords.put(2, "Two");
numberWords.put(3, "Three");
numberWords.put(4, "Four");
numberWords.put(5, "Five");
numberWords.put(6, "Six");
numberWords.put(7, "Seven");
numberWords.put(8, "Eight");
numberWords.put(9, "Nine");
numberWords.put(0, "Zero");

String numbers = "1234523";
String result = "";

for(int i =0; i< numbers.length(); i++) {
char current = numbers.charAt(i);
result = result + " " + numberWords.get(Character.getNumericValue(current));
}

System.out.println(result);
}

虽然,正如第一条注释所说,这看起来确实像作业问题,而且hashMap可能有点过头了

计算机不理解文本。

在Java SE规范中,没有任何东西可以将数字转换为相应的单词。

实现您想要的一种方法是使用java.util.HashMap<K, V>,但更好的是使用array,如:

String[] numWords = new String[] {"zero", "one", ... "hundred"};
public String convertNumberToWord(int n) {
return numWords[n];
}

然而,实现这样的方法没有多大意义。您需要动态创建或加载所有字符串,这是您无法做到的,甚至是不合理的事情,恕我之言。

老实说,我甚至想不出任何东西,在计算机科学的世界里,可以提供这样的功能,因为,数字被存储为二进制值,字符也是数字代码(来自Unicode)。计算机不理解文本。

据我所知,没有库可以做到这一点,但这是一个足够简单的方法来将一串数字转换为单词:

String convertStringToNumbers(String input) {
String result = "";
for(int i = 0; i < input.length(); i++) {
int currentDigit = Character.getNumericValue(input.charAt(i));
switch (currentDigit) {
case 0:
result += "zero";
break;
case 1:
result += "one";
break;
//add cases for the other digits
}
}
return result;
}

相关内容

  • 没有找到相关文章

最新更新