java,split函数运用时出现错误

String str="192.168.1.1";
String[]firstarray=str.split("\.");
for(String a:firstarray)
{
System.out.print("["+a+"]");
}

这个是对的,但改成以下就不对了

String str="192.168.1.1";
String[]firstarray=str.split("\.");
for(int a:firstarray)
{
System.out.print("["+firstarray[a]+"]");
}

我不太清楚为什么不能这么改,求解答,谢谢

for(类型名 类型 : 需要遍历的数组) firstarray里面的类型是String,不能用int
firstarray[a]这种是要把a当成下标来用,那应该改成for (int a = 0; a < firstarray.length; a++)

因为类型的原因

String[]firstarray=str.split("\.");

返回的是一个字符串类型的数组,你循环却是用的整型接收

下面的这种写法,循环里面定义的a的数据类型不正确,a作为数组firstarray的元素,应该是String类型,不能定义为int。如果非要这么用,应该先获取数组firstarray的length,再遍历,如:

String str="192.168.1.1";
String[]firstarray=str.split("\.");
for(int a=0; a < firstarray.length; a++)
{
  System.out.print("["+firstarray[a]+"]");
}

for(单个元素的类型,你要遍历的集合),就是你现在for(String a(单个元素为String):firstarray(这个集合是String的集合))你来个int肯定有问题啊

错误点1:for循环的时候循环的是一个String数组所以类型需要修改为int
错误点2:split切割转移错误

public static void main(String[] args) {
        String str = "192.168.1.1";
        // 使用\\.进行转义
        String[] firstarray = str.split("\\.");
        // int 改成String
        for (String a : firstarray) {
            System.out.print("[" + a + "]");
        }
    }