不兼容的类型

时间:2015-01-13 17:05:55

标签: java

这是我的主要方法

import java.util.*;
public class Cities 
{
    static String [] extractCity (String [] cityStateZip)
    {
       int location;
       ArrayList<String> cities= new ArrayList<String>(Arrays.asList(cityStateZip));

       for (int i=0; i < cities.size(); i++)
        {
          cities.get(i);
        }

        for (int i=0; i<cityStateZip.length; i++)
        {
           if (cityStateZip[i] == null || cityStateZip[i].equals(" "))
               break;
           cities.add(cityStateZip[i].substring(0, cityStateZip[i].indexOf(",")));
       }

       return cities;
    } 
}

错误发生在'返回城市',表明它是不兼容的类型。我知道它期待一个int,但我不知道如何解决它。 (我已经看过类似的问题,但我似乎并没有完全掌握这个概念)

提前谢谢你。

4 个答案:

答案 0 :(得分:8)

cities不是String[],而是List<String>。返回String[]之类的

return cities.toArray(new String[0]);

或修改方法的返回类型,如

static List<String> extractCity (String [] cityStateZip)

答案 1 :(得分:6)

extractCity应该返回一个字符串数组,但是你尝试返回String的ArrayList。

这样做:

return cities.toArray(new String[cities.size()]);

答案 2 :(得分:5)

声明您的函数返回一个&#34;字符串数组&#34;而不是int。 &#34;城市&#34;是一个字符串的ArrayList。

ArrayList<String>不是字符串数组。 (这是你的错误所在的地方)

一种可能的解决方案:更改方法以返回ArrayList

例如:

public static ArrayList<String> extractCity(String[] cityStateZip) {
    //code
}

答案 3 :(得分:1)

static String [] extractCity (String [] cityStateZip){
  ArrayList<String> cities= new ArrayList<String>(Arrays.asList(cityStateZip));
  return cities.toArray(new String[cities.size()]);
} 

将退货类型更改为String []