Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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 如何修复我的代码打印内存地址_Java_String - Fatal编程技术网

Java 如何修复我的代码打印内存地址

Java 如何修复我的代码打印内存地址,java,string,Java,String,我不知道这里出了什么问题。我的代码应该检查特定于状态的csv文件在1列csv文件中出现的次数。我想它正在打印它保存的地址,但我不知道如何修复它。它也应该打印所有的州,但它不是 import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.IOException; import java.io.FileReader; import java.util.ArrayList; import jav

我不知道这里出了什么问题。我的代码应该检查特定于状态的csv文件在1列csv文件中出现的次数。我想它正在打印它保存的地址,但我不知道如何修复它。它也应该打印所有的州,但它不是

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;

public class csvtxt 
{
   public static void main(String a[])
   {
      StringBuilder sb = new StringBuilder();
      String strLine = "";
      List<String> list = new ArrayList<String>();
      try 
      {
         BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\dbb38\\Downloads\\customers_export_1111 - customers_export_1.csv"));
         while (strLine != null)
         {
            strLine = br.readLine();
            if (strLine==null)
               break;
            sb.append(strLine);
            sb.append(System.lineSeparator());
            list.add(strLine);
         }
         String[] state = new String[]{"Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming"};
         String[] state1 = new String[]{"Alabama1", "Alaska1", "Arizona1", "Arkansas1", "California1", "Colorado1", "Connecticut1", "Delaware1", "Florida1", "Georgia1", "Hawaii1", "Idaho1", "Illinois1", "Indiana1", "Iowa1", "Kansas1", "Kentucky1", "Louisiana1", "Maine1", "Maryland1", "Massachusetts1", "Michigan1", "Minnesota1", "Mississippi1", "Missouri1", "Montana1", "Nebraska1", "Nevada1", "New Hampshire1", "New Jersey1", "New Mexico1", "New York1", "North Carolina1", "North Dakota1", "Ohio1", "Oklahoma1", "Oregon1", "Pennsylvania1", "Rhode Island1", "South Carolina1", "South Dakota1", "Tennessee1", "Texas1", "Utah1", "Vermont1", "Virginia1", "Washington1", "West Virginia1", "Wisconsin1", "Wyoming1"};
         int[] stateCounts = new int[state.length];
         for (int i = 0; i < list.size(); i++) 
         {
            String wordToSearchFor = state[i];
            for (String state2 : list) 
            {
               if (state2.equals(wordToSearchFor)) 
               {
                  stateCounts[i]++;
               }
            }
            System.out.println(state[i] + "="  + "["+ stateCounts +"]");
         }
         //
         //System.out.println(Arrays.toString(list.toArray()));
         br.close();
      } 
      catch (FileNotFoundException e) 
      {
         System.err.println("File not found");
      } 
      catch (IOException e) 
       {
         System.err.println("Unable to read the file.");
      }
   }
}

打印阵列时,需要使用以下各项:

System.out.println(Arrays.toString(array));

state1是字符串数组,而不是字符串:

System.out.println(state[i] + "="  + "["+ state1 +"]");
数组没有实现toString,因此它会打印默认的对象toString实现,它会打印内存地址

也许你想写:

System.out.println(state[i] + "="  + "["+ state1[i] +"]");

如果没有,您需要自己将state1转换为字符串,或者转换为列表(List类有toString实现)。

state1
是一个数组;这就是Java打印数组的方式。也许你的意思是state1[i]你不应该这样修改问题,最好添加一个编辑部分和更正。好的,谢谢!你知道为什么它只打印到俄亥俄州,而它应该打印所有50个州吗?不确定。。。i for循环一直运行到列表中的元素数。这取决于导入的csv文件中的行数。。。您还修改了代码。你不应该做那种修改。现在您的行是System.out.println(state[i]+“=”+“[“+stateCounts+”]);
System.out.println(state[i] + "="  + "["+ state1[i] +"]");