2011-07-17 105 views
1

我應該如何使用戶輸入的兩個值被添加?添加用戶輸入的兩個值

import java.io.*; 

public class InputOutput { 
    public static void main(String[] args) { 
     String base=""; 
     String height=""; 

     BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); 
     try { 
      System.out.print("Input base value = "); 
      base = input.readLine(); 
      System.out.print("Input height value = "); 
      height = input.readLine(); 
     } catch(IOException e) { 
      System.out.print("Error"); 
     } 

     System.out.println("The base is "+base+height); 
    } 
} 
+0

出了什麼問題'的System.out.println(「該基地是」 +基地+高); '? – Oswald

+1

@Oswald OP希望'「基數是」+ base + height「(當'base = 2'和'height = 3'時)爲'基數爲5'。在這裏它變成了'基地是23' – Nivas

+0

下面的答案之一是可以接受的嗎? – MGwynne

回答

2

首先,將兩個輸入字符串轉換爲數字,例如使用Integer.parseInt

當您「添加」兩個字符串(或一個字符串和一個數字)時,結果是這些字符串的串聯。將這些數字的結果是它們的總和,你所期望的,所以你的最後一行應該是這樣的:

System.out.println("The base is " + (baseNumber+heightNumber)); 
+0

不應該將字符串轉換爲int更好? – Zhianc

+0

@js david是的,'parseInt'(它返回一個'int',與'valueOf'相比,它返回​​一個'Integer')確實是更好的選擇,儘管由於自動拆箱,兩者都有效。我想要強調的是,'int'(或者'Integer')並不總是最好的選擇,特別是如果你期望大輸入或者小數輸入。 – phihag

2

此刻你是治療baseheight爲字符串。

所以,你必須:

base + height = "2" + "3" = "23" 

也就是說+是字符串連接。

您需要使用Integer.parseInt將它們轉換爲int秒,然後將它們添加:

int ibase = Integer.parseInt(base); 
int iheight = Integer.parseInt(height); 
int sum = ibase + iheight; 
System.out.println("The base is " + sum); 
1
int sum = Integer.parseInt(base)+ Integer.parseInt(height); 
System.out.println("The base is "+ sum); 
1

爲什麼大家要分析它?只要改變的baseheight類型int及用途:

input.nextInt()