Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.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 选项卡作为分隔符(StringTokenizer),不作为参数_Java_Delimiter_Stringtokenizer - Fatal编程技术网

Java 选项卡作为分隔符(StringTokenizer),不作为参数

Java 选项卡作为分隔符(StringTokenizer),不作为参数,java,delimiter,stringtokenizer,Java,Delimiter,Stringtokenizer,我看过几篇关于这方面的帖子,但都是关于split而不是StringTokenizer 这是我的输入文件: 我编写了stringTokenizer来获取一行中的每个值 1.0 3.0 delim1.0 delim3.0 so on 但当我试图将分隔符作为一个参数时,它对我来说并不是很好 while ((sCurrentLine = br.readLine()) != null) { System.out.println(sCurrentLine); StringTokenizer st

我看过几篇关于这方面的帖子,但都是关于split而不是
StringTokenizer

这是我的输入文件:

我编写了stringTokenizer来获取一行中的每个值

1.0      3.0
delim1.0
delim3.0
so on
但当我试图将分隔符作为一个参数时,它对我来说并不是很好

while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
StringTokenizer st = new StringTokenizer(sCurrentLine, args[0]);
 while(st.hasMoreTokens()){
  System.out.println("delim"+st.nextToken());
 }
}
1.将
(通过按
键盘中的“Tab”键作为参数传递,它工作正常

2.将
“\t”
作为参数传递。它正在显示

1.0      3.0
delim1.0      3.0
3.将
\t
作为参数传递。它显示的是相同的

1.0      3.0
delim1.0      3.0

为什么会这样。

“\t”
不能作为字符串传递。尝试将其作为
\\\t
传递,它应该可以工作,因为
\t
是一个转义序列,应该存储在原语中的char或作为包装类的Character中。

请评论您期望的是什么?即使您将一个标签而不是一个空格传递给标记器,标记器也会将该行拆分?如果文件中的数字用空格分隔,那么您必须使用空格作为分隔符。您可以将文本文件复制/粘贴到pastebin.com并在此处发布链接吗?嗯,我自己对此进行了测试,似乎java完全接受了命令行中的所有内容。因此,如果不放入物理字符,就无法对制表符进行分隔。另一方面,您必须识别/转换程序中的制表符。这是一段hadoop代码。使用split时存在性能问题