2014-10-11 44 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) + "."); 
    } 
} 

希望它有帮助。

相关问题