像这样的问题已得到解答,但没有一个帮助我理解并决定在我的案例中做到这一点的最佳方式。
这个想法:
Input: 15k+5b-1m
Ouput: 15000+5000000000-1000000
基本上将k替换1,000 - m 1,000,000,将b替换为1,000,000,000,并将其乘以它所附加的值。
我以为我会这样做:
Using 2 StringTokenizer, one to parse math signs +,-,*,/ and one to parse
letter k,m,b that I call on every element the first parser got.
因此,如果我们应用我的例子中的算法:
Str Input = 15k+5b-1m
StringTokenizer math_token= new StringTokenizer(source, Input);
while (math_token.hasMoreTokens())
{
while(math_token.hasMoreElements())
{
Str token_value = math_token.nextElement();
parse_letters(token_value) and change values...
}
math_token.nextToken();
format stuff for the final string
}
所以它就像:
15k -> 15 -> 15000
答案 0 :(得分:0)
如果我理解了您的问题,那么您可以用九个零b
替换m
六个零和k
三个零。此外,按照惯例,Java变量名称以小写字母开头。像,
String input = "15k+5b-1m";
input = input.replace("b", "000000000").replace("m", "000000")
.replace("k", "000");
System.out.println(input);
输出(按要求)
15000+5000000000-1000000