2017-11-25 196 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

相關問題