我用以下代码发送字符串完全就可以运行
String a="016736";
                Socket socket = null; 
                           
                try    
                {      
                    //创建Socket   
                    socket = new Socket("10.10.100.254",8899);
                    //输出流
                    PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);         
                  //向服务器发送消息   
                    out.print(a);
                  //输入流
                   InputStream br=socket.getInputStream();
但是,我想把“016736”放进字符串数组里面,再发送数组单元,代码如下:
 String[] a;
                a=new String[2];
             a[0]="016704";
                a[1]="016736";
                a[2]="016702";
            
                Socket socket = null; 
                           
                try    
                {      
                    //创建Socket   
                    socket = new Socket("10.10.100.254",8899);
                    //输出流
                    PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);         
                  //向服务器发送消息   
                    out.print(a[1]);
                  //输入流
                   InputStream br=socket.getInputStream();
  然后想发送a[1],但是这样之后程序就没办法运行了,程序的其他部分没有丝毫改动,只是把字符串a 变成了字符串数组单元a[1],求高手指点啊,不知道怎么解决这个问题,因为这个字符串数组有其他用途,所以一定要用数组的,谢谢大家了~~~              

解决方案 »

  1.   

    建议你在现在不能用的代码里面先换回字符串看是否可以正常,如果换回字符串正常的情况下,再考虑:在
    out.print(a[1]);
    前面加上
    Log.i("test","<------Start------>")

    out.print(a[1]);
    后面加上
    Log.i("test","<------Finish------>")然后运行后看LogCat看是否有执行到此。
      

  2.   

    谢谢AMinfo,问题已解决了,是我初始化数组的问题,把a=new String[2];中的2改成3就可以运行了,是数组定义越界了的问题,太粗心了,嘿嘿~~~
      

  3.   

    a=new String[2];
       a[0]="016704";
       a[1]="016736";
       a[2]="016702";