2017-11-25 202 views
1

我正在制作自己的助理程序,连接到我写的银行管理程序。我希望用户能够输入命令字段:添加$ 5或添加$ 10500或任何其他金额。我将如何计算“10500”而忽略“添加$”。 “add $”用于检查用户输入的命令以执行操作。这是我迄今为止。我想计算文本字段中整数的值,而忽略整数之前所需的文本字符串?

} else if (AssistantFrame.getCommand().equalsIgnoreCase("add $5")) { 

     BankBalance.addToBalance(5); 

} 

这是处理向余额添加资金的代码。

public static void addToBalance(int balanceAdd){ 

    Commands.setContinuity(0); 

    if(fileBalance.exists()) { 

      try { 
       loadBalance(); 
      } catch (FileNotFoundException | UnsupportedEncodingException e) { 

      } 

      balance += balanceAdd; 

      try { 
       saveBalance(); 
      } catch (FileNotFoundException | UnsupportedEncodingException e) { 

      } 

      AssistantFrame.updateAssistant("Your balance has been succesfully updated.\nYour new balance is - $" + balance); 

    } else { 

     AssistantFrame.updateAssistant("Sorry, but you don't seem to have a personal\nbank balance created yet."); 

    } 
+0

可能的JFormattedTextField –

回答

2

类似的东西:

String command = AssistantFrame.getCommand(); 
int amount = Integer.parseInt(command.replaceAll("[^\\d]","")); 
BankBalance.addToBalance(amount); 
0

我会做的是通过所有的字符重复检查,看看他们的价值是48和57之间,包容性的,如果是的话,加他们到一个字符串。您将只有一个包含数字的字符串。使用“的Integer.parseInt(...)”

0

可能使用String.startsWith(String)然后,您可以只解析字符串,然后使用String.substring(int)你解析之前。像,

String command = "add $10"; 
if (command.startsWith("add $")) { 
    int v = Integer.parseInt(command.substring(5)); 
    System.out.println(v); 
} 

,输出

10 
0

你所要实现的目标是解析命令。你可以简单地在下面的例子中,如果您的命令会很简单:

if(command.startsWith("add $")){ 
    money=command.substring(5); 
    todo=ADD; 
else if(command.startsWith("something else")){ 
    ... 
    todo=SOMETHING_ELSE; 
} 
... 

或者,如果你的命令将在本质上更复杂,然后通过词法分析器代码。

...词法分析,词法分析或标记是将字符序列(例如在计算机程序或网页中)转换为标记序列(具有指定的标识含义的字符串)的过程, ...... Wikipedia

一个这样的例子是:here

相关问题