高手帮个忙才行了,我想写一个方法,内容是:我定义了一个字节数组来接我发送命令后返回的数据,数组里装的是读取标签的数据,假如数组里面是这样的"ABCD ABCDEFGHIJKLNO ABCDEFGHIJKLNO ABCDEFGHIJKLNO ABCDEFGHIJKLNO ABCDEFGHIJKLNO  L "现在看到的是那数组里面的数据,中间我把它们隔开是为了告诉你前面那五位是固定的,然后ABCDEFGHIJKLNOPQ这就是其中的一条标签,我想取其中的3到10位显示到一个jTextArea上面,每条标签都这样取出来,这里有5条,标签没有固定的数量有时候多有时候少但都是14位,最后那个L是标签全部读完了才显示结束的不管它。请问这个方法改怎么写?

解决方案 »

  1.   

    真的没太看明白你所说的 。但安我的理解,很简单啊
    但我认为。为什么要通过ABCD和空格来区分呢?再有通过L表示结束太有问题了你可能通过其他特殊字符来代替。。
    数据装载时,可能通过“,:!”等等来代替分隔。。再通String中split方法直接取出,如果存的数据都是14位的。写一个substring的方法专门取。。
      

  2.   

     我里面所表示的只是代表有几位而已,真正的数据不是这样的,那ABCD也只是我给个一个代号,只是代表前面有4位是每次读取都会有的,变只变中间的,后面那L也是我拿来代替一位数的。相当于开始和结束一样,那些都是我随便代替的。中间每条标签是14位数,然后我再取14位中间的3--10位。谢谢你的帮助!请有空的时再解答一下!谢谢!
      

  3.   

    我不是高手,也出一下手:首先要有一个jTextArea集合fff,因为数量不定.然后就是解析字符串的问题了首先是必需有前面四位和后面的一位吧
    String str = "ABCDABCDEFGHIJKLNOABCDEFGHIJKLNOABCDEFGHIJKLNOABCDEFGHIJKLNOABCDEFGHIJKLNOL";
    int i=4;
    while(i<str.length())
    {
    jTextArea j = new jTextArea();
    String temp = str.substring(i,i+14);//得到14位数据
    i=i+14;//开始下一个
    fff.add(j);
    }用循环把fff里的所有jTextArea画出来.
      

  4.   

    忘记里边的3-10位了
    String str = "ABCDABCDEFGHIJKLNOABCDEFGHIJKLNOABCDEFGHIJKLNOABCDEFGHIJKLNOABCDEFGHIJKLNOL";
    int i=4;
    while(i<str.length())
    {
    jTextArea j = new jTextArea();

    String temp = str.substring(i,i+14);//得到14位数据String data = temp.substring(2,10);//得到想要的3-10位;

    i=i+14;//开始下一个
    fff.add(j);
    }
      

  5.   

       AWUSOFT 你好!还能完整点吗?有点问题!还有你那个fff是哪里来的?麻烦你都注释一下好吗?非常感谢!
      

  6.   

    晕哦
    在类的属性里加上private ArrayList list = new ArrayList();
    String str = "ABCDABCDEFGHIJKLNOABCDEFGHIJKLNOABCDEFGHIJKLNOABCDEFGHIJKLNOABCDEFGHIJKLNOL";
    int i=4;
    while(i<str.length())
    {
    jTextArea j = new jTextArea();String temp = str.substring(i,i+14);//得到14位数据
    String  data  = temp.substring(2,10);//得到3-10位数据
    //把数据放到j里边去
    list.add(j);
    i=i+14;//开始下一个
    if(i+14>str.length())//不处理最后边的L或者是不合14位的
    {
    break;
    }}
    用循环的方法把list中的jTextArea画出去