我用的jdk是6.0的程序中有句这样的程序 for(int i=0; i<df.length; i++)
    String[] tdf = df[i].split(",");由于循环是一句话我就没写分号但编译器显示为
      testArray.java:9: 需要 ".class"
                        String[] tdf = df[i].split(",");
                                 ^
testArray.java:9: 不是语句
                        String[] tdf = df[i].split(",");
                              ^
testArray.java:9: 非法的表达式开始
                        String[] tdf = df[i].split(",");
                                     ^
testArray.java:9: 需要 ']'
                        String[] tdf = df[i].split(",");
                                          ^
testArray.java:9: 非法的表达式开始
                        String[] tdf = df[i].split(",");
                                           ^
testArray.java:9: 需要 ';'
                        String[] tdf = df[i].split(",");
                                            ^
6 错误当我加上大括号的时候编译通过了这是为什么呢?他们应该是一样的形式啊             

解决方案 »

  1.   

       String[] tdf;
    for(int i=0; i <df.length; i++)
       tdf = df[i].split(",");
      

  2.   

    我的看法是:第一个String[]数组没有标出容量(大小)之前肯没有定义,而后面的方法只是返回的确是一个字符串分组但是编译器并不知道你它返回一个多大的数组。更不能用后面产生的字符串组给它赋值啦,它并不知道前面是是否够大。我猜你的df是一个字符串,所以df[i]应该是一个字符,那好像不能用split()方法。
      

  3.   

    灵异事件!
    等高手解答for(int i=0;i<5;i++) 
      String[] tdf = "3,4".split(",");即使这样也会报错,跟上下文无关
      

  4.   


      String[] tdf = "3,4".split(",");ORfor(int i=0;i<5;i++) {
      String[] tdf = "3,4".split(",");}
    都可以通过for(int i=0;i<5;i++) 
      String[] tdf = "3,4".split(",");就不行,太奇怪了
      

  5.   

     String[] tdf = "3,4".split(",");
    这句可能当两个语句了
    一个声明,一个定义
      

  6.   

    public static void main(String[] args) {

    String s = "1,2;3,4,5;6,7,8";
    String[] df = s.split(";");
            
                    for(int i=0; i<df.length; i++)
                       String []Second =df[i].split(",");
                 
                    
             
            
    }
      

  7.   

    为什么 String []Second =df[i].split(","); 
    加入大括号就可以了呢,他应该是和不加大括号的执行和编译是一样的啊
      

  8.   

    String []s=df[i].split(",");   我试着 解释一下,不知道楼主是用啥编译器,不过可以肯定for语句中的内嵌语句只能是block或者可以内嵌的一类语句,例如声明局部变量一类的语句不能作为内嵌语句,原因可能是声明语句的变量作用范围会产生歧义。
      

  9.   

    Systax error on tokens,misplaced constructs