如果java文件中有多个(\t),则StringTokenizer从下一行开始

如果java文件中有多个(\t),则StringTokenizer从下一行开始,java,file,stringtokenizer,Java,File,Stringtokenizer,我正在基于\t分析一个文件数据,如果找到多个\t从下一行开始分析,并从0开始arraylist单词 public static void readFile() throws IOException { String line; ArrayList<String> words = new ArrayList<String>(); try { BufferedReader inFile = new BufferedReader (new FileRead

我正在基于
\t
分析一个文件数据,如果找到多个
\t
从下一行开始分析,并从0开始arraylist单词

public static void readFile() throws IOException {
  String line;
  ArrayList<String> words = new ArrayList<String>();

  try {
    BufferedReader inFile = new BufferedReader (new FileReader ("/weather.txt"));

    while ((line = inFile.readLine()) != null) {
      StringTokenizer token= new StringTokenizer(line,"\t");
      while (token.hasMoreTokens()) {   
        words.add(token.nextToken());
      }

      /*
       * function to print the values
       */                   
      getMetadataTriple(words);
    }
  }
public static void readFile()引发IOException{
弦线;
ArrayList words=新的ArrayList();
试一试{
BufferedReader infle=new BufferedReader(new FileReader(“/weather.txt”);
而((line=infle.readLine())!=null){
StringTokenizer令牌=新的StringTokenizer(行“\t”);
而(token.hasMoreTokens()){
words.add(token.nextToken());
}
/*
*函数打印值
*/                   
getMetadataTriple(单词);
}
}

尝试以下正则表达式解决方案:

public static void readFile() throws IOException
{
    String line;
    ArrayList<String> words = new ArrayList<String>();    
    try
    {
        BufferedReader inFile = new BufferedReader(new FileReader("weather.txt"));

        while ((line = inFile.readLine()) != null)
        {
            String[] temp = line.split("\\t");
            for (String s : temp)
            {
                if(!s.isEmpty())
                {
                    words.add(s);
                }
                else //another \t
                {
                    words.clear();
                    break;
                }   
            }

            /*
             * function to print the values
             */
            getMetadataTriple(words);
        }
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }

}
public static void readFile()引发IOException
{
弦线;
ArrayList words=新的ArrayList();
尝试
{
BufferedReader infle=新的BufferedReader(新文件阅读器(“weather.txt”);
而((line=infle.readLine())!=null)
{
字符串[]温度=行分割(\\t“);
用于(字符串s:temp)
{
如果(!s.isEmpty())
{
字。加上(s);
}
else//另一个\t
{
单词。清除();
打破
}   
}
/*
*函数打印值
*/
getMetadataTriple(单词);
}
}
捕获(例外e)
{
e、 printStackTrace();
}
}
来自:StringTokenizer是一个遗留类,出于兼容性原因保留该类,尽管新代码中不鼓励使用该类。建议寻求此功能的任何人使用String的拆分方法或java.util.regex包。