gpt4 book ai didi

java - 文件读入数组

转载 作者:行者123 更新时间:2023-12-02 08:34:13 24 4
gpt4 key购买 nike

我正在尝试使用字符串标记生成器读取文件的内容并将所有标记存储在数组中,但我不断在主要错误中遇到异常。我需要有关如何执行此操作的建议。下面是为此使用的代码;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.StringTokenizer;

public class FileTokenizer
{
private static final String DEFAULT_DELIMITERS = "< , { } >";
private static final String DEFAULT_TEST_FILE = "trans1.txt";


public List<String> tokenize(Reader reader) throws IOException
{
List<String> tokens = new ArrayList<String>();

BufferedReader br = null;

try
{
int i = 0;
br = new BufferedReader(reader);
Scanner scanner = new Scanner(br);
while (scanner.hasNext())
{

StringTokenizer st = new StringTokenizer(scanner.next(), DEFAULT_DELIMITERS, true);
while (st.hasMoreElements())
{
String[] t = new String[200];

tokens.add(st.nextToken());

t[i] = st.nextToken();

System.out.println(t[i]);

i++;
}
}
}
finally
{
close(br);
}

return tokens;
}

public static void close(Reader r)
{
try
{
if (r != null)
{
r.close();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}

public static void main(String[] args)
{
try
{
String fileName = ((args.length > 0) ? args[0] : DEFAULT_TEST_FILE);
FileReader fileReader = new FileReader(new File(fileName));
FileTokenizer fileTokenizer = new FileTokenizer();
List<String> tokens = fileTokenizer.tokenize(fileReader);
//System.out.println(tokens);
}
catch (IOException e)
{
e.printStackTrace();
}
}
}

我的文件看起来像;

PDA = (
{ q1, q2, q3, q4},
{ 0, 1 },
{ 0, $ },
{ (q1, @, @) -> { (q2, $) }, (q2, 0, @) -> { (q2, 0) },
(q2, 1, 0) -> { (q3, @) }, (q3, 1, 0) -> { (q3, @) },
(q3, @, $) -> { (q4, @) } },
q1,
{ q1, q4}
)

最佳答案

由于您在循环内调用 st.nextToken() 两次,您将得到 java.util.NoSuchElementExceptionwhile (st.hasMoreElements())

修改harigm的示例,然后您可以根据需要将t[i]添加到标记

字符串[] t = 新字符串[200];
System.out.println(t[i]);
tokens.add(t[i]);

关于java - 文件读入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2423117/

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