关于格式化的输入
我在学习C语言时候常常用到scanf()方法,比如要得到一个时间格式16:40我就可以用scanf(“%d:%d”);这是一个很简单的格式化。
但是当我在学习java的时候发现没有类似的方法,当我解决“输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。”这个问题的时候,我就为难了。不知道如何准确的提取数据。
于是我在Scanner类中找到了useDelimiter()方法;于是我就用“-”做分隔符。但是问题来了
public static void main(String[] args)
{
String year;
String month;
String day;
Scanner in = new Scanner(System.in);
in.useDelimiter("-");
month=in.next();
day = in.next();
year = in.next();
System.out.println(year+"-"+month+"-"+day);
in.close();
}
我输入的格式要mm-dd-yyyy-,可以发现我最后一个要加“-”,不然没办法结束。
于是我又想了个办法,我在最后一个的时候将分割符改成“\r\n”不就好了吗?
public static void main(String[] args)
{
String year;
String month;
String day;
Scanner in = new Scanner(System.in);
in.useDelimiter("-");
month=in.next();
day = in.next();
in.useDelimiter("\r\n");
year = in.next();
System.out.println(year+"-"+month+"-"+day);
in.close();
}
输入的问题解决了但是得到的结果却是
-2020-03-21
多了个-,我要怎么样才能做到完美的提取数据呢?