java - 检查字符串或整数

标签 java input

我正在读取以下格式的字符串: ID 名字(包含中间名) 姓氏 出生年份

例如

722 大卫·贝克汉姆 1975

现在我只是使用这段代码:

ID = scannerStr.nextInt();

FirstName = scannerStr.next();

LastName = scannerStr.next();

BirthYr = scannerStr.nextInt();

但是你看,当有中间名的人出现时,这就失败了...... 例如

100 大卫·罗伯特·约瑟夫·贝克汉姆 1958

如何解决这个问题?如何检查我读取的是单词还是整数?

最佳答案

您对输入的建模不正确。

您当前的模型(如代码中所示)是这样的:

int string string int

您输入的真实模型似乎是这样的:

int string (string)* string int

您可以使用String.split()正确解析它

String[] tokens = inputString.split(" ");

actorId = Integer.valueOf(tokens[0]);
actorFirstName = tokens[1];
actorLastName = tokens[tokens.length - 2];
actorBirthYear = Integer.valueOf(tokens[tokens.length - 1]);

查看 Apache Commons Lang用于空安全字符串操作的 StringUtils 类。

关于java - 检查字符串或整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15165139/

相关文章:

c++ - cpp中的cin对象

c - 处理 shell 上的键盘输入

java - java中final局部变量的使用

java - 打印 ArrayList<String []> 的索引

javascript - 根据动态下拉选择转到 URL

java - 解析 Java 中的标准输入

firefox - 如何阻止 Firefox 的自动完成功能?

java - 将 Flask 消息淡出为多条消息

java - eclipse 和 tomcat 的硬件要求

java - JavaFX ObservableList 或 ReactFX LiveList 的实时映射