0

我正在尝试读取 servlet 中的文件,这是通过以下代码完成的:

ServletContext context = getServletContext();
InputStream is = context.getResourceAsStream("/AFINN-111.txt");

InputStreamReader isr = new InputStreamReader(is);
BufferedReader reader = new BufferedReader(isr);
PrintWriter pw = resp.getWriter();

String text = "";

我正在尝试拆分字符串,例如:

好 2

优秀 3

字符串总是有一个英文单词和一个数值,我试图将这些值存储在 aArrayList中,例如:

ArrayList<String> words = new ArrayList<String>();
ArrayList<Integer> values = new ArrayList<Integer>();

现在,问题是当我尝试拆分值时:

while ((text = reader.readLine()) != null) 
{
    resp.getWriter().println(text +  "<br />");

    resp.getWriter().println("<br />");
    String[] split_text = text.split(" ");
    //resp.getWriter().println(split_text.length +  "<br />");

    for(int j = 0 ; j < split_text.length; j++)
    {
        resp.getWriter().println(split_text[j] + " <br />");
    }
    resp.getWriter().println("<br />");
    resp.getWriter().println("<br />");

}

字符串:好 2

拆分结果:好 2

长度:1

当我尝试按空格分割字符串时,我得到了相同的字符串。

文本文件列表位于:http ://www2.imm.dtu.dk/pubdb/views/edoc_download.php/6010/zip/imm6010.zip

解决方案:使用 .split("\t");

再次感谢大家的帮助!

4

3 回答 3

1

看起来text变量有“good 2”而不是“good 2”

good&nbsp2看起来像good 2在浏览器上,原因在 HTML 中&nbsp表示single space

编辑:您可以说text.split("&nbsp;");仍然拆分它们

于 2013-04-27T18:27:26.400 回答
1

文本文件中的值用制表符与单词分开。这应该会给你预期的结果:

String[] split_text = text.split("\t");
于 2013-04-27T18:37:01.687 回答
1

我猜该文件有制表符空格 /t 而不是空格

于 2013-04-27T18:38:14.193 回答