2015-01-21 80 views
0

第一個問題:我試圖以相反的順序打印出四個double值,所以如果用戶輸入「1 2 3 4」,我希望它打印出「4 3 2 1」這是我的編碼。2簡單的Java問題

// User enters 4 float values here 
System.out.println("Enter 4 float values"); 
inputValues2 = input.readLine(); 
String[] dblValues = inputValues2.split("\\s+"); 

第二個問題:我想打印出double值的整數部分。我想我試圖將double值轉換爲int。我已經嘗試了這兩種不同的方式,併爲他們獲得了錯誤。有任何想法嗎??也許我應該做一些四捨五入到整數?

int dblConvert = dblAverage.intValue();   // One way 
int dblConvert = Integer.parseInt(dblAverage); // Second way 
+0

在第一部分,你有什麼迄今所做?對於第二個,只需將您的double轉換爲int:'(int)dblAverage'。你只能在'Double'上調用'dblAverage.intValue()',而不是'double'(注意大寫字母D)。 – jhamon 2015-01-21 09:09:11

+1

請限制每個問題的單個問題並給它一個正確的標題。 – 2015-01-21 09:12:37

+0

@JensErat如果我可以每90分鐘詢問一個以上的問題...... – 2015-01-21 09:25:38

回答

9

找到您的問題的答案/提示。

  1. 您必須以相反的順序打印數組的內容。

    for (int i = dblValues.length -1;i >= 0; i--) { 
        System.out.println(dblValues[i]); 
    } 
    

    這是一個先行者的基本方式。他們是某些預定的庫做這個工作

  2. 您可以使用int a = (int) Math.round(doubleVar);
+1

感謝這就是我一直在尋找。當我被允許時,我會在9分鐘內接受答案。 – 2015-01-21 09:10:59

+0

如果我試圖不在這裏打印出變量,只需設置dblValues [i]的反向以供以後使用...? – 2015-01-21 09:21:45

+0

@MarcusBurkhart,是的,存儲在該陣列位置的初始值將被更新的值替換。你可以試試。 – 2015-01-21 09:23:15

0

關於第二個問題:有一個Math.round()方法。然後您需要將返回的長整型轉換爲int safe way

0

如果你不只是要打印的數字按相反的順序和他們爲了自然就可以將它們添加到列表,並對其進行排序

如果你也不在乎四捨五入,你可以只投雙

String s = "4 3 2 1"; 
    String[] split = s.split("\\s+"); 
    List<Integer> numbers = new LinkedList<>(); 

    for (String toAdd : split) { 
     numbers.add(Integer.parseInt(toAdd)); 
    }  

    Collections.sort(numbers);  
    System.out.println(numbers); 

    System.out.println((int)45.7654); 
0

1.)從最後索引循環並打印在reverse order

2)使用Math.round()用於獲取INT部分

public static void main(String[] arg) { 
     Scanner input = new Scanner(System.in); 
     System.out.println("Enter 4 float values"); 
     String inputValues2 = input.nextLine(); 
     String[] dblValues = inputValues2.split("\\s+"); 

     System.out.println("Reverse order"); 

     for (int i = dblValues.length - 1 ; i >= 0 ; i--) { 
      System.out.println(dblValues[i]); 
     } 

     System.out.println("int part "); 

     for (String s : dblValues) { 
      int a = Math.round(new Float(s)); 
      System.out.println(a); 
     } 
    } 

輸出

Enter 4 float values 
12.4 23.5 34.5 45.3 
Reverse order 
45.3 
34.5 
23.5 
12.4 
int part 
12 
24 
35 
45