Java 解析&;替换字符串中的值

Java 解析&;替换字符串中的值,java,parsing,Java,Parsing,像这样的问题已经得到了回答,但没有一个能帮助我理解并决定在我的情况下最适合这样做的方式 这个想法: Input: 15k+5b-1m Ouput: 15000+5000000000-1000000 基本上用1000-m替换k,用1000000替换b,用100000000替换b,并将其乘以所附加的值 我想我会怎么做: Using 2 StringTokenizer, one to parse math signs +,-,*,/ and one to parse letter k,m,b tha

像这样的问题已经得到了回答,但没有一个能帮助我理解并决定在我的情况下最适合这样做的方式

这个想法:

Input: 15k+5b-1m
Ouput: 15000+5000000000-1000000
基本上用1000-m替换k,用1000000替换b,用100000000替换b,并将其乘以所附加的值

我想我会怎么做:

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

如果我理解你的问题,那么你可以用九个零替换
b
,用六个零替换
m
,用三个零替换
k
。此外,按照惯例,Java变量名以小写字母开头。大概

String input = "15k+5b-1m";
input = input.replace("b", "000000000").replace("m", "000000")
        .replace("k", "000");
System.out.println(input);
哪些输出(按要求)


如果我理解你的问题,那么你可以用九个零替换
b
,用六个零替换
m
,用三个零替换
k
。此外,按照惯例,Java变量名以小写字母开头。大概

String input = "15k+5b-1m";
input = input.replace("b", "000000000").replace("m", "000000")
        .replace("k", "000");
System.out.println(input);
哪些输出(按要求)


input.replace(“k”,“000”).replace(“b”,“000000000”).replace(“m”,“000000”)
不够吗?“像这样的问题…”你愿意链接到其中任何一个吗?哇-我不知道这是存在的(在内心深处我知道,但没关系-必须得到建议),非常感谢-这太完美了!将
input.replace(“k”,“000”).replace(“b”,“000000000”).replace(“m”,“000000”)
不够吗?“像这样的问题…”你愿意链接到其中任何一个吗?哇-我不知道这是存在的(在内心深处我知道,但没关系-必须得到建议),非常感谢-这太完美了!