编写使用输入字符串流inSS的代码,以从字符串userInput读取输入数据

时间:2016-12-09 18:42:26

标签: java

坚持这个迷你问题,感谢一帮

,我们将不胜感激

编写使用输入字符串流inSS的代码从字符串userInput读取输入数据,并更新变量userMonth,userDate和userYear。如果用户输入是" 1992年1月12日":示例输出: 月:1月 日期:12 年:1992年

 import java.util.Scanner;

 public class StringInputStream {
     public static void main (String [] args) {
         Scanner inSS = null;
         String userInput = "Jan 12 1992";
         inSS = new Scanner(userInput);`

         String userMonth = "";
         int userDate = 0;
         int userYear = 0;

         /* Your solution goes here  */

         System.out.println("Month: " + userMonth);
         System.out.println("Date: " + userDate);
         System.out.println("Year: " + userYear);

         return;
    }
}

2 个答案:

答案 0 :(得分:0)

由于我们已经知道userInput是一个字符串,我们可以将它标记为空格分隔的字符串,在字符串上使用 split()函数并将其存储在字符串数组中。

String[] dateArray = userInput.split(" ");

这将为您提供3个单独的字符串。的"扬"" 12" ," 1992" 。将后两个解析为整数。

userMonth = dateArray[0];

try{ userDate = Integer.parseInt(dateArray[1]); userYear = Integer.parseInt(dateArray[2]); } catch(Exception e) { e.printStackTrace(); }

希望有所帮助。

答案 1 :(得分:0)

使用扫描仪,您可以将userMonth直接设置为月份

String userMonth = inSS.next();

它将识别白色空间(空间)并获得月份,然后它将从Stream所具有的字符串中删除它。现在我们可以使用nextInt

设置userDate和userYear
int userDate = inSS.nextInt();
int userYear = inSS.nextInt();

这是有效的,因为第一个nextInt()将删除12,只留下1992年第二个int。

这将产生输出:

Month: Jan
Date: 12
Year: 1992