java - 尝试划界和分割线时出界
问题描述
我必须将文件读入数组列表,然后从 arrlist 中逐行读取,以便分隔命令(i 表示插入)和键(要插入的数字)。因为我正在建立一个跳过列表。我的文件由以下部分组成:
我2173
我2307
我2405
我1512
我1783
我 60
编辑:&是的,每个插入命令旁边都有一个数字。
问题是我的程序突然超出以下行的范围:
int key = Integer.parseInt(字母[1]);
为什么会发生这种情况?它之前成功运行,但突然超出范围,当我进行打印测试时,它也在文件行之间跳过了 1 行。代码如下。谢谢你。
错误:线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:索引 1 超出 SkipList.main 处长度 1 的范围(SkipList.java:103)
import java.io.*;
import java.util.*;
import java.lang.StringBuild
public class SkipList{
public static void main(String[] args) throws IOException{
String line;
File file = new File("src/in10.txt");
Scanner in = new Scanner(file);
//Copying File content
ArrayList<String> arrList = new ArrayList<>();
// Populates array list with text file content
while(in.hasNextLine()) {
arrList.add(in.nextLine());
}
for ( int i = 0; i < arrList.size(); i++){
line = arrList.get(i);
// System.out.println(line);
//Splits Line with space delimiter into String Array
String[] letter = line.split(" ");
String command = letter[0];
int key = Integer.parseInt(letter[1]); //ERROR occurs here?
}
}
}
解决方案
// System.out.println(line);
//Splits Line with space delimiter into String Array
String[] letter = line.split(" ");
你得到了一些基本的建议:
- 显示行
- 显示数组长度
所以代码应该是这样的:
System.out.println("(" + line ")");
//Splits Line with space delimiter into String Array
String[] letter = line.split(" ");
System.out.println(letter.length);
第一个 println() 将告诉您文件中是否有空行。
第二个 println() 将告诉您拆分是如何工作的。正如建议的那样,您可能在字符串中没有“”,而是一个不可打印的字符。
我们无法为您调试代码,因为我们无权访问您的文本文件。
推荐阅读
- database - CDC 用于同一张表的多个消费者,其中每个消费者读取不同的列集
- sql - 触发器:插入的表列值不能在条件内引用
- python - 使用 Telethon 延迟从电报中的特定频道接收新消息
- web-scraping - 请求发布功能结果被禁止
- php - 运行代码时如何将准备好的stmt的时间戳添加到mysql数据库?
- mongodb - 无法从 GKE pod 连接到 MongoDB Atlas
- python - 如何使图像/对象无限次跳跃?
- node.js - 尽管允许来源,但 Socket.IO 无法从 Angular 工作
- scala - 使用 try-catch 表达式匹配非异常值的模式
- amazon-web-services - 无法通过 aws-amplify sdk 登录到 AD (SAML) 提供商