Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串[]到字符串_Java_String_Split - Fatal编程技术网

Java 字符串[]到字符串

Java 字符串[]到字符串,java,string,split,Java,String,Split,我有一个文本文件,我想将每个单词读入ArrayList,但我必须留下逗号、破折号、点等。这是迄今为止用于此目的的代码: Scanner sc2 = null; while (sc2.hasNextLine()) { Scanner s2 = new Scanner(sc2.nextLine()); while (s2.hasNext()) { String s = s2.next(); String[] tokens = s.split("

我有一个文本文件,我想将每个单词读入
ArrayList
,但我必须留下逗号、破折号、点等。这是迄今为止用于此目的的代码:

Scanner sc2 = null;    
while (sc2.hasNextLine()) {
    Scanner s2 = new Scanner(sc2.nextLine());
    while (s2.hasNext()) {
        String s = s2.next();
        String[] tokens = s.split("\\W+");
        s  = tokens.toString();
        Dictionary.add(s);
    }
}
问题是,当我执行打印代码时:

for (int i = 0; i < Dictionary.size();i++) {
    System.out.println(Dictionary.get(i));
}
等等,每一个字。我相信问题在于
s=tokens.toString()但我不知道如何修复它。

谢谢大家!

tokens
是一个由
字符串组成的数组,因此它的
toString()
方法返回您在输出中看到的内容。您需要迭代
标记中的每个
字符串
,并将它们分别添加到
字典
,例如

for (int i = 0; i < tokens.length; i++) {
    Dictionary.add(tokens[i]);
}
for(int i=0;i
标记
是一个
字符串数组
,因此它的
toString()
方法返回您在输出中看到的内容。您需要迭代
标记中的每个
字符串
,并将它们分别添加到
字典
,例如

for (int i = 0; i < tokens.length; i++) {
    Dictionary.add(tokens[i]);
}
for(int i=0;i
这是一个已经被问过的问题,但下面是答案:

String punctutations = ".,:;";//add all the ones you want.
if(punctutations.contains(letter[a])) //If the character at letter[a] contains a punctuation mark

这是一个已经被问过的问题,但答案如下:

String punctutations = ".,:;";//add all the ones you want.
if(punctutations.contains(letter[a])) //If the character at letter[a] contains a punctuation mark

如果您想避免for循环;然后只需使用
java.util.array
--


如果您想避免for循环;然后只需使用
java.util.array
--


哦,我忘了提到,出于某种原因,eclipse不允许我使用
数组。
。每次尝试使用它时,导入库时都会出现错误。
import java.util.array这是导入语句。是的,我导入了,但出现了错误。无论如何,谢谢!还要注意的是,在我看来,通过简单地迭代sc2.hasNext()并将每个单词添加到字典中,您就可以摆脱split语句和第二个scanner。@Maria也许您的eclipse没有完整的java源代码:POh我忘了提到,出于某种原因,eclipse不允许我使用
数组。
。每次尝试使用它时,导入库时都会出现错误。
import java.util.array这是导入语句。是的,我导入了,但出现了错误。无论如何,谢谢!还请注意,在我看来,您可以通过简单地迭代sc2.hasNext()并将每个单词添加到字典中来摆脱split语句和第二个scanner。@Maria也许您的eclipse没有完整的java源代码:P@Maria-太好了!如果是这样的话,你应该点击那边的复选标记来接受答案是的!我会在5分钟内完成(如果允许的话)@Maria-太好了!如果是这样的话,你应该点击那边的复选标记来接受答案是的!我会在5分钟内完成(如果允许的话)