0

我有一个看起来像这样的文本文件:

2009 年 1 月 1 日 76.0 81.1 68.1 86.7 99.2 97.5 92.9

我不明白的是如何只提取 7 个数字而不是日期。

到目前为止的编辑代码:

当我运行它时,什么都没有打印?

File inputFile = new File ("C:/Users/Phillip/Documents/Temp/temperatures.txt .txt");
Scanner scan = new Scanner(inputFile);


  while (scan.hasNextLine())
  {
  String line = scan.nextLine(); 

  String[] words = line.split(" "); 

  for (int index = 1; index < words.length; index++)
   System.out.println(words[index]);
4

4 回答 4

1

首先String#split将值拆分为单独的元素...

String text = "1/1/2009 76.0 81.1 68.1 86.7 99.2 97.5 92.9";
String[] parts = text.split(" ");
// You can now skip over the first element and process the remaining elements...
for (int index = 1; index < parts.length; index++) {
    // Convert the values as required...
}

您还应该查看JavaDocs and Strings trail以获取更多详细信息

于 2013-11-12T23:27:03.117 回答
0

使用带有空格分隔符的字符串拆分方法。你会得到一个由 8 个字符串组成的数组,你的数字是从索引 1 到 7。

于 2013-11-12T23:27:53.240 回答
0
String line = "1/1/2009 76.0 81.1 68.1 86.7 99.2 97.5 92.9";

String[] words = line.split(" ");

会将行拆分为空格之间的单词数组。然后跳过 [0] 索引,这样:

for(int i = 1; i < words.length; i++)
    System.out.println(words[i]);

将只打印数字

于 2013-11-12T23:28:49.927 回答
0

首先删除前导输入,然后对空格拆分的结果使用 foreach 循环。

所有这些都可以在一行代码中完成:

for (String number : line.replaceAll("^\\S+\\s+", "").split("\\s+")) {
    // do something with "number"
}
于 2013-11-13T03:44:52.553 回答