2014-10-11 21 views
0

這是一個簡單的編碼,我需要做的..問題是,運行後,它會顯示例如,「今天是2日和2日後是星期四。」而不是「今天是星期二,2天后是星期四」。如何在執行後將整數輸入顯示爲String?

import java.util.Scanner;

公共類FindFutureDay {

public static void main(String[] args) { 
    //Variable 
    int day, next, future; 

    //Create scanner 
    Scanner input=new Scanner(System.in); 

    //Input day 
    System.out.println("Enter day today: "); 
    day=input.nextInt(); 
    //Convert day to String 
    String Sunday = String.valueOf(0); 
    String Monday = String.valueOf(1); 
    String Tuesday = String.valueOf(2); 
    String Wednesday = String.valueOf(3); 
    String Thursday = String.valueOf(4); 
    String Friday = String.valueOf(5); 
    String Saturday = String.valueOf(6); 


    //Input number of days later 
    System.out.println("Number of days later: "); 
    next=input.nextInt(); 

    //Close scanner 
    input.close(); 

    //Compute future day 
    future=day+next; 

    //Select result to display 
    if (future%7==0){ 
     System.out.println("Today is "+day+" and "+next+" day later is Sunday."); 
    } else if (future%7==1) { 
     System.out.printf("Today is "+day+" and "+next+" day later is Monday."); 
    } else if (future%7==2) { 
     System.out.printf("Today is "+day+" and "+next+" day later is Tuesday."); 
    } else if (future%7==3) { 
     System.out.println("Today is "+day+" and "+next+" day later is Wednesday."); 
    } else if (future%7==4) { 
     System.out.println("Today is "+day+" and "+next+" day later is Thursday."); 
    } else if (future%7==5) { 
     System.out.println("Today is "+day+" and "+next+" day later is Friday."); 
    } else if (future%7==6) { 
     System.out.println("Today is "+day+" and "+next+" day later is Saturday."); 
    } else { 
     System.out.println("Invalid!"); 
    } 
} 

}

回答

0

貴 「的問題」 是您打印整數爲此你會得到一個數字印刷。 您可以通過添加函數getDay(day)而不是日期來解決該問題。

private String GetDay (int day) 
    { 


if (day == 1) 
     { 
      return "Sunday"; 
     } 

    return null; 


    } 


System.out.println("Today is "+GetDay (int day) +" and "+next+" day later is Sunday."); 

相同的邏輯適用於下一個整數。

0

看來你星期天到星期六變量永遠不會被使用,也不會將天存儲爲字符串,而是存儲相應整數的字符串表示形式。因此,您將永遠無法打印「星期二」而不是「2」,因爲您只需打印變量「day」,即掃描的整數。

您應該存儲一張地圖並從其整數值中獲取字符串表示。這裏是一個例子:

import java.util.HashMap; 
import java.util.Map; 
import java.util.Scanner; 

public class FindFutureDay { 

    private static Map<Integer, String> weekDays = new HashMap<Integer, String>(); 

    static { 
     weekDays.put(0, "Sunday"); 
     weekDays.put(1, "Monday"); 
     weekDays.put(2, "Tuesday"); 
     weekDays.put(3, "Wednesday"); 
     weekDays.put(4, "Thursday"); 
     weekDays.put(5, "Friday"); 
     weekDays.put(6, "Saturday"); 
    } 

    public static void main(String[] args) { 
     //Variable 
     int day, next, future; 

     //Create scanner 
     Scanner input = new Scanner(System.in); 

     //Input day 
     System.out.println("Enter day today: "); 
     day = input.nextInt(); 

     //Input number of days later 
     System.out.println("Number of days later: "); 
     next = input.nextInt(); 

     //Close scanner 
     input.close(); 

     //Compute future day 
     future = (day + next) % 7; 

     //Select result to display 
     System.out.println("Today is " + weekDays.get(day) + " and " + next + " day later is " + weekDays.get(future) + "."); 
    } 
} 

希望它有幫助。

相關問題