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";


我不断收到编译错误。对于要添加到索引Value中的行,我有一个bad operand for the binary operator。此外,找不到变量lastIndexOf。

我在程序的开头调用下面的列表,据我从Java文档可以得知,iolang引入了适当的方法和类。

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


对于if语句,尽管我的parens是平衡的,但我不知道是否在嵌套parens的正确级别内添加了其他字符(例如,索引值+ 3)。话虽这么说,我已经尝试过将这些整数相加几乎没有用。

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


我想知道以下几点:首先,我可以在单个语句中执行此操作吗?还是在一个语句中定义索引,然后在后续语句中定义index + offset-value更好?

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

最佳答案

您使用了+3错误。您将其放在if(condition)语句之外,在该处没有任何语法意义-它在您的代码中令人毛骨悚然。

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

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

10-10 11:41