gpt4 book ai didi

java - 我的代码运行了 15 分钟但只有白色输出?

转载 作者:行者123 更新时间:2023-12-02 10:23:18 25 4
gpt4 key购买 nike

我正在编写一个用于数据清理的停止字代码。我按照 YouTube 上的教程进行操作:https://www.youtube.com/watch?v=ckQUlI7x7hI他的代码可以工作并显示输出,但我的不行

我正在使用英语停用词,我的停用词的示例是“a”、“an”、“away”、“keeps”。输入为“每天一苹果,医生远离我”,输出应为“苹果日医生”。

这是我的文件的内容:https://ufile.io/gikev

代码如下:

import java.io.FileInputStream;
import java.util.ArrayList;

public class DataCleaning {


public static void main(String[] args) {

ArrayList sw = new ArrayList<>();

try{
FileInputStream x = new FileInputStream("/Users/Dan/Desktop/DATA/stopwords.txt");

byte b[] = new byte[x.available()];
x.read(b);
x.close();

String data[] = new String(b).split("\n");

for(int i = 0; i < data.length; i++)
{
sw.add(data[i].trim());
}
FileInputStream xx = new FileInputStream("/Users/Dan/Desktop/DATA/cleandata.txt");

byte bb[] = new byte[xx.available()];
xx.read(bb);
xx.close();

String dataa[] = new String(bb).split("\n");



for(int i = 0; i < dataa.length; i++)

{
String file = "";
String s[] = dataa[i].split("\\s");
for(int j = 0; j < s.length; i++)
{
if(sw.contains(s[j].trim().toLowerCase()))
{
file=file + s[j] + " ";
}

}
System.out.println(file + "\n");
}

} catch(Exception a){
a.printStackTrace();
}

}

}

当我运行我的时,它只会执行以下操作:

我该怎么办?

最佳答案

您的代码存在 3 个问题:

  1. 您在最内层循环中增加了错误的变量
    导致无限循环,因为 j 始终小于
    s.length 并且您永远不会增加j。更改此行:

    for (int j = 0; j < s.length; i++) {

    for (int j = 0; j < s.length; j++) {
  2. 要打印非停用词的单词,您需要否定您的if条件如下:

    if (!sw.contains(s[j].trim().toLowerCase()))
  3. 此外,请确保文件 stopwords.txt\n 分隔(new线),因为你是根据它来分割它的,而不是像文件位于您共享的链接中。

我建议您缩进代码并使用有意义的名称来命名变量。调试这样的问题会简单得多。

关于java - 我的代码运行了 15 分钟但只有白色输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54166731/

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