gpt4 book ai didi

java - 尝试在对象类中创建一个将文本文件划分为多个部分的函数(Java)

转载 作者:行者123 更新时间:2023-11-30 06:21:28 27 4
gpt4 key购买 nike

我试图将一个文本文件分为 150 个部分,因此我在对象类本身中创建了一个函数。这是完整的对象类:

public TehilimEpisode(int EpisodeID, String[] ab)
{
this.EpisodeID=EpisodeID;
this.Perek=ab;
}
public static void setperek(TehilimEpisode[] pirkoni) throws IOException
{
BufferedReader inputReader = new BufferedReader(new FileReader("C:\\\\*.txt"));
String nextLine; String[] ab;
while ((nextLine = inputReader.readLine()) != null)
{
for(int i=1; i<=150;i++)
{
ab = nextLine.split("$");
pirkoni[i] = new TehilimEpisode(i, ab);
}
}
for(int i=1; i<=150; i++)
pirkoni.toString();
}
@Override
public String toString() {
return String.format(EpisodeID + " & " + Arrays.toString(Perek));
}
@Override
protected Object clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
return super.clone();
}
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
return super.equals(obj);
}
@Override
protected void finalize() throws Throwable {
// TODO Auto-generated method stub
super.finalize();
}
@Override
public int hashCode() {
// TODO Auto-generated method stub
return super.hashCode();
}
}

函数名称为setperek。当我尝试从主类运行该函数时,它正在写入以下错误:

Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at TehilimEpisode.setperek(TehilimEpisode.java:25)
at main.main(main.java:48)

最佳答案

您必须读取单个字符串中的整个 txt,然后用“$”分割它。下面是我使用分隔符 \\z 读取单个字符串中的整个文件的示例,然后我用“$”分割字符串。在下面的示例中,我们单行阅读整本书,然后用“$”将其分割为剧集,就像您在剧集末尾添加的那样。

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class FileReadingWithScanner {

public static void main(String[] args) throws IOException {
File file = new File("D:\\book.txt");
String book = "";
Scanner sc = new Scanner(file);
/* Using this delimiter you will be able to read whole file in single line. */
sc.useDelimiter("\\Z");
book = sc.next();
String[] episodeArr = book.split("$");
//Do whatever you want.
}
}

更新

String.split() 接受正则表达式作为参数,$ 是 Java 正则表达式 API 中的元字符。因此,你需要转义它:使用这个 book.split("\\$");

关于java - 尝试在对象类中创建一个将文本文件划分为多个部分的函数(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48077544/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com