- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个多行文本输入文件:如果出现字符串“Log Number:”,它后面紧跟着一个日志编号。如果字符串“Log Number:”不存在,则该记录中没有日志编号。总是有字符串“Log Date:”。如果存在,它跟在“日志编号:”之后,如果不存在,则出现在文件中的那个位置。
我的 inputLine
来自正在逐行读取我的文件的 BufferedReader
。
...
if((inputLine.indexOf("Log Number:"))>-1) {
logNumRecStart = inputLine.indexOf("Log Number:")+12;}
else
logNumRecStart = 0;
logNumRecEnd = inputLine.indexOf("Log Date:");
...
logNumber = inputLine.substring(logNumRecStart,logNumRecEnd);
...
当我输出开始和结束索引时,这是我得到的示例。
49>>> -0 to 357
50>>> -0 to 361
51>>> -0 to 384
52>>> -371 to 390
53>>> -315 to 334
54>>> -325 to 352
记录 49-51 是“日志编号:”未出现在输入行中的情况,正如预期的那样,logNumRecStart
设置为 0。记录 52 - 54 做 包括“日志编号:”,但索引被设置为负数,导致我的子字符串出现越界异常。目视检查文件证明在适当的行中存在(或不存在)测试值。我的 logNumRecEnd
值在所有情况下都是正确的。
通过计算 inputLine
源文件中的字符数,我已经验证如果 logNumRecStart
的负值是正值,那么它就是正确的数字。
我没有使用 lastIndexOf
,所以我不知道为什么会得到负值。任何人都可以看到我遗漏的东西或我需要检查但我没有提到的东西吗?
最佳答案
我会将代码更改为以下内容以确保您没有错误。
final int logNumberPos = inputLine.indexOf("Log Number:");
final int logNumRecStart = logNumberPos > -1) ? logNumberPos + 12 : 0;
final int logNumRecEnd = inputLine.indexOf("Log Date:", logNumRecStart);
if (logNumRecEnd > 0)
logNumber = inputLine.substring(logNumRecStart, logNumRecEnd);
49>>> -0 to 357
我怀疑你在数字前面打印了一个 -
因为 int
没有 -0
(顺便说一句:你说这个是 0
)
52>>> -371 to 390
这应该是 371 到 390
,这更有意义。
顺便说一句:对于 double
和 float
-0.0
这样的东西
关于java - 为什么 Java 的 `indexOf` 返回除 (-1) 以外的负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11650716/
我已经坚持了好几天了……很抱歉遇到这样的问题,但是我只是F#本身的初学者。由于关于类型提供程序的讨论很多,所以我决定建立一个类型提供程序并撰写一篇有关它的论文。当我开始时,我不知道什么是类型提供程序。
我正在开发LAN项目唤醒功能,但是我想控制局域网中计算机是否打开。但是我不想使用ICMP或WMI(我的网络上有DC)。那么,对于此问题,是否还有其他选择,例如“套接字连接”,请检查特定端口是否正在使用
我们有一个旧的VB6应用程序,该应用程序使用Crystal Reports XI生成打印报告。我们已经通过经验发现,如果Crystal Reports打印引擎选择了错误版本的 usp10.dll (W
我正在尝试获取有效的 Android 权限列表。我知道 http://developer.android.com/reference/android/Manifest.permission.html
嗨,我是 nginx 的新手,我试图在我的服务器(运行 Ubuntu 4)上设置它,它已经运行了 apache。 所以在我 apt-get install 它之后,我尝试启动 nginx。然后我收到这
如何在VB 6中检查对象的类型-除了'TypeName'之外,是否还有其他方法,因为无法通过'TypeName'进行检查,我希望使用类似QuichWatch窗口的方法。 最佳答案 对于对象变量,请使用
我的 JSP 应用程序中有一个错误。发布后我的 session 被清除: YAHOO.util.Connect.asyncRequest('POST', Url, callback, post
我是一名优秀的程序员,十分优秀!