gpt4 book ai didi

Java解析数组中的字符

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

感谢您查看我的问题。编辑要花费时间。

此代码采用字符串“3$ 29C 3P 1H”并将其拆分为数组并打印。我想解析数组中的每个标记以查找字符并按如下方式打印:“3 美元 29 美分 3 便士 1 hpenny” 这个想法是程序可以接受任何货币输入并以“完整”形式呈现。

public parseCurrency()
{
System.out.print('\u000c');
String currencyIn = "3$ 29C 3P 1H";
String[] tokens = currencyIn.split(" ");

for (String t : tokens)
{ System.out.println(t);}

String dollars = tokens[0];
String cents = tokens[1];
String penny = tokens [2];
String hPenny = tokens [3];
}

我认为类似的事情需要遵循。该循环逐个字符地遍历数组,选出 d、c、p 和 h,然后用相应的字符串替换这些字符。

for (int i=0; i<tokens.length(); i++)
{
char c = tokens.charAt(i);
if (c == 'D')
{
String dollarsFull = dollars.replaceAll("D", "Dollars");
}
if (c == 'C')
{
String centsFull = cents.replaceAll("C", "cents");
}
etc
}

问题1:循环条件“tokens.length”应该是数组每个部分中的字符数。我知道我的代码不正确,但我不明白为什么。

问题 2:我使用 charAt() 来解析字符串中的字符,这一行的工作方式是否相同?

编辑 - 我省略了这些内容以使问题变得轻量

该程序应该使用扫描仪获取用户输入,因此还应该进行错误检测。我取出了当前的代码,以便更快地阅读等。我见过错误检测的示例,它解析一个字符串,并有一系列带有错误返回的 if 语句(或 switch)。例如,如果用户输入“3 29c 3p 1h”,则程序将返回类似“expected 'D'”的内容。

提前非常感谢。

最佳答案

1.) charAt()String 类的一种方法(来自 CharSequence 因此可在其实现中使用),因此您只能将其与像 tokens[0].charAt(i);

这样的字符串一起使用

2.) replaceAll 采用区分大小写的字符串,因此 cents.replaceAll("C", "cents")cents.replaceAll 不同(“c”,“分”)

或者您可以使用替换而不是正则表达式作为

    System.out.print('\u000c');
String currencyIn = "3$ 29C 3P 1H".replace("$"," Dollar")
.replace("C"," Cents");
// and so on
String[] tokens = currencyIn.split(" ");

String dollars = tokens[0]; // 3 Dollar
String cents = tokens[1]; // 29 Cents
String penny = tokens [2];
String hPenny = tokens [3];

关于Java解析数组中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49926033/

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