保留数组java中的空格

时间:2014-07-29 04:53:23

标签: java arrays

我试图在将每个空格,句号,感叹号和感叹号放入数组的过程中保留空格,句号,逗号,感叹号和新行。除了空白区域以外,其他所有工作都很好。

Scanner fileInput = new Scanner(file);
 while (fileInput.hasNext()) 
  {
    String s = fileInput.next();
    if(s.endsWith(",") || s.endsWith(".") || s.endsWith("!")|| s.endsWith("\n") || s.endsWith(","))
    {
        String token = new String("");
        token += s.charAt(s.length()-1);
        s = s.substring(0, s.length()-1);
        words.add(s.toLowerCase());
        words.add(token);
    }

    else if (!s.equals("") )        
      words.add(s.toLowerCase());        
  }

}

3 个答案:

答案 0 :(得分:1)

next()读取输入,直到空格出现,不包括space.So为空白,您的代码不能作为空白,实际上并不存在,而且您可以使用charAt获取最后一个字符并使用{{ 1}}而不是switch

您应该使用||来获取所有令牌(也由nextLine()建议),包括中间的空格以便您自信。

答案 1 :(得分:0)

扫描仪可以返回空格。您只需要使用分隔符 1 。请尝试以下方法。

Scanner fileInput = new Scanner(file);
fileInput.useDelimiter("(?<=(\\s++))");
while (fileInput.hasNext()) 

当然,你需要添加一些条件来查看字符串是否以空格或换行符结尾。

<子> 备注

1 关键是要找到符合要求的好分隔符。

答案 2 :(得分:-1)

只需在("") (" ")之间留出一些空格,并使用nextLine()进行输入,请参阅以下代码

public class MyClass{
public static void main(String args[])
{
if("".equals(" "))    //THIS BLOCK WILL NOT RUN
{
System.out.println("same");
}
else{                     //ELSE PART WILL BE EXECUTED
 System.out.println("NOT SAME");
}
}
}

输出:不相同

空格是一个带有ascii代码32的字符文字。