gpt4 book ai didi

java - 为什么扫描仪不会在末尾没有/的情况下获取我的年份变量?

转载 作者:行者123 更新时间:2023-11-30 02:21:16 25 4
gpt4 key购买 nike

用户正在以 XX/XX/XXXX 格式输入日期,我使用分隔符来挑选输入中的整数,但我无法弄清楚如何在不放置另一个/的情况下获取年份变量输入结束。我如何获取该年份变量?

提前致谢

package formatting_problem;

import java.util.Scanner;
public class DateFormatter {
public static void main(String[] args) {
Integer day = 0;
Integer month = 0;
Integer year = 0;
Integer test = null;
Scanner input = new Scanner(System.in).useDelimiter("/");
System.out.println("Enter a date in the format XX/XX/XXXX to be formatted to Month Day,Year");
while (input.hasNext()){
month = input.nextInt();
day = input.nextInt();
year = input.nextInt();
System.out.println();
}

最佳答案

How do I go about getting that year variable?

您可以只使用String.split():

String tokens[] = input.split("/");      //where input is a String
int month = Integer.parseInt(tokens[0]);
int day = Integer.parseInt(tokens[1]);
int year = Integer.parseInt(tokens[2]);

注意:您可以只使用原始数据类型 int 而不是其包装类 Integer

<小时/>

回答你的问题,那是因为你分配的分隔符只是一个正斜杠。在Java中,默认情况下,换行符也是分隔符之一。但是,在您重新定义分隔符时,它被省略了。

要修复此问题,请同时包含换行符:

Scanner input = new Scanner(System.in).useDelimiter("/|\\n");

您也可以删除 while 循环,只需:

int month = input.nextInt();
int day = input.nextInt();
int year = input.nextInt();

关于java - 为什么扫描仪不会在末尾没有/的情况下获取我的年份变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46747199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com