サーブレットでファイルを読み取ろうとしていますが、これは次のコードによって行われます。
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"); を使用します。
みんなの助けをありがとう!