java - 验证数据时,Java 的lastIndexOf 和indexOf 的正确语法是什么?

标签 java string

e 有一个可以接受 2 或 4 位数年份的日期表单。我并不是在尝试编写异常代码...只是年份为 2 或 4 位数长的实例。我使用lastIndexOf 来查找“/”的最后一个实例,如果斜杠后面的第三个字符是数字,我假设是4 位数字的年份。否则它是两位数的年份。

我已经测试并验证了这是目前唯一给我带来问题的行,

if (inputLine.lastIndexOf.isNumeric("/"))+3 {
   year = inputLine.trim().substring(inputLine.lastIndexOf("/")+1,input.lastIndexOf("/")+4).trim);
   else year = "0000";

我不断收到编译错误。对于我添加到索引值的行,我得到了一个二元运算符的错误操作数。另外,找不到变量lastIndexOf。

我在程序的开头调用下面的列表,据我从java文档中可以看出,iolang拉入了适当的方法和类。

import java.util.*;
import java.io.*;
import java.nio.file.*;
import java.lang.*;

对于 if 语句,虽然我的括号是平衡的,但我不知道添加附加字符(例如索引值 + 3)是否在嵌套括号的正确级别。话虽这么说,我已经尝试将这些整数添加到顶部,但几乎没有效果。

if (inputLine.lastIndexOf.isNumeric("/"))+3 {
   year = inputLine.trim().substring(inputLine.lastIndexOf("/")+1,input.lastIndexOf("/")+4).trim);
   else year = "00/00/0000";

我想知道几个问题:首先,我可以在单个语句中执行此操作,还是最好在一个语句中定义索引,然后在后续语句中定义索引+偏移值?

当我在单个字段上使用多个方法和类时(例如 .trim().substring.Indexof() 等),Java 解析这些方法和类的顺序是什么?我想了解如何解析这些语句,以便更好地理解操作变量和测试输出的最佳方法。

最佳答案

您错误地使用了+3。您将其放在 if(condition) 语句之外,某个没有任何语法意义的地方 - 它在您的代码中是官样文章。

此外,如果您尝试测试 inputline.lastIndexOf('/') 的结果是否为数字,则它没有任何意义。如果指定的字符没有出现,lastIndexOf不会抛出异常;它只会返回-1。您想要测试结果是否大于/等于零。

关于java - 验证数据时,Java 的lastIndexOf 和indexOf 的正确语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11510744/

相关文章:

java - Glassfish Web 应用程序没有响应

C++ -- ' ' 之前的预期主表达式

java - 我的数组列表仅输出最后一个值

python - 给定预定义的字符/值对,将字符映射到其值

java - 在 Eclipse 中安装 JML

java - 将一个实例注入(inject)多个 bean

java - 重复从字符串中删除子字符串

Javascript:十六进制到十进制的字符串

java - 在java中提升数字的字符串输入

java - 了解字符匹配和标记匹配之间的区别