在Servlet中读取文件并拆分字符串

时间:2013-04-27 18:21:53

标签: java

我正在尝试读取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

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

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”);

再次感谢大家的帮助!

3 个答案:

答案 0 :(得分:1)

看起来text变量有“good&amp; nbsp2”而不是“good 2”

浏览器中的

good&nbsp2看起来像good 2,因为&nbsp代表HTML中的single space

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

答案 1 :(得分:1)

文本文件中的值用单词中的选项卡分隔。 这应该给你预期的结果:

String[] split_text = text.split("\t");

答案 2 :(得分:1)

我猜文件中有空格/ t而不是空格