从if,for语句中返回数组

时间:2015-09-17 15:03:52

标签: java for-loop error-handling scope

我正在为库存目的构建标签阅读器。使用for循环迭代标记来计算/总计id。我的返回行上出现错误“tagsFound无法解析为变量”。我如何在for循环中使用变量然后在循环外访问它?

public String[] getTags(AlienClass1Reader reader)throws AlienReaderException{
    int coneCount = 0;
    int drumCount = 0;

    // Open a connection to the reader
      reader.open();
    // Ask the reader to read tags and print them
      Tag tagList[] = reader.getTagList();
      if (tagList == null) {
        System.out.println("No Tags Found");
      } else {
        System.out.println("Tag(s) found: " + tagList.length);
        for (int i=0; i<tagList.length; i++) {
          Tag tag = tagList[i];
          System.out.println("ID:" + tag.getTagID() +
                             ", Discovered:" + tag.getDiscoverTime() +
                             ", Last Seen:" + tag.getRenewTime() +
                             ", Antenna:" + tag.getAntenna() +
                             ", Reads:" + tag.getRenewCount()
                             ); 
        //tagFound[i]= "" + tag.getTagID();
          String phrase = tag.getTagID();
          tagFound[i] = phrase;
          String delims = "[ ]+";
          String[] tokens = phrase.split(delims);
          if (tokens[0].equals("0CCE") && tokens[3].equals("1001")){drumCount++;}
          if (tokens[0].equals("0CCE") && tokens[3].equals("1004")){coneCount++;}
          String[] tagsFound;
        tagsFound[i] = tag.getTagID();
      }
        System.out.println("Cones= " + coneCount);
        System.out.println("Drums= " + drumCount);

      // Close the connection
      reader.close();
      return tagsFound;
    }
}

1 个答案:

答案 0 :(得分:1)

public String[] getTags(AlienClass1Reader reader)throws AlienReaderException{
int coneCount = 0;
int drumCount = 0;

// Open a connection to the reader
  reader.open();
// Ask the reader to read tags and print them
  Tag tagList[] = reader.getTagList();
  if (tagList == null) {
    System.out.println("No Tags Found");
  } else {
    System.out.println("Tag(s) found: " + tagList.length);
    String[] tagsFound = new String[tagList.length];
    for (int i=0; i<tagList.length; i++) {
      tagsFound = "";
      Tag tag = tagList[i];
      System.out.println("ID:" + tag.getTagID() +
                         ", Discovered:" + tag.getDiscoverTime() +
                         ", Last Seen:" + tag.getRenewTime() +
                         ", Antenna:" + tag.getAntenna() +
                         ", Reads:" + tag.getRenewCount()
                         ); 
    //tagFound[i]= "" + tag.getTagID();
      String phrase = tag.getTagID();
      tagFound[i] = phrase;
      String delims = "[ ]+";
      String[] tokens = phrase.split(delims);
      if (tokens[0].equals("0CCE") && tokens[3].equals("1001")){drumCount++;}
      if (tokens[0].equals("0CCE") && tokens[3].equals("1004")){coneCount++;}
    tagsFound[i] = tag.getTagID();
  }
    System.out.println("Cones= " + coneCount);
    System.out.println("Drums= " + drumCount);

  // Close the connection
  reader.close();
  return tagsFound;
}
}

返回的数组在标记不符合标准的位置会有空字符串。