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 + "]");
}
}