gpt4 book ai didi

java - switch 的替代方案——替换字符

转载 作者:行者123 更新时间:2023-12-01 18:17:25 25 4
gpt4 key购买 nike

我被要求为类(class)编写一个程序:

  1. 已接受 .txt 文件
  2. 将文件中的数字 0-9 转换为对应的文本(如果数字位于句子开头,则使用大写)
  3. 将完成的句子打印到新文件

示例:

The 8 eggs were separated into 3 groups.

将转换为:

The eight eggs were separated into three groups.
<小时/>

目前,我正在使用一个(非常)长的 switch 语句和 StringBuilder 来完成任务:

switch(sb.charAt(i)){
case '0':
if (i == 0)
sb.replace(i, i+1, "Zero");
else
sb.replace(i, i+1, "zero");
break;
case '1':
if (i == 0)
sb.replace(i, i+1, "One");
else
sb.replace(i, i+1, "one");
break;
.....
}

有更先进/更有效的方法来完成这项任务吗?

最佳答案

您可能正在寻找HashMap 。这可以帮助:

  1. 创建静态HashMap<String, String> DIGITS并使用put("0", "zero"); put("1", "one"); //etc..来初始化它。
  2. 使用 string.split(" ") 分割输入字符串;这将创建一个如下所示的字符串数组:{"The","8","eggs",...} .
  3. 使用StringBuilder建立答案:

    for (String s : splitted) {
    if (DIGITS.contains(s))
    sb.append(DIGITS.get(s));
    else
    sb.append(s);
    sb.append(' ');
    }

关于java - switch 的替代方案——替换字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28799408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com