首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

哪位高手能帮小弟我分析一下这个程序?十分感谢

2012-03-07 
谁能帮我分析一下这个程序?十分感谢这段程序的作用是什么?急切,大家帮分析分析,感激不尽!publicstaticObje

谁能帮我分析一下这个程序?十分感谢
这段程序的作用是什么?急切,大家帮分析分析,感激不尽!
public   static   Object   method(String   strMain,int   intMaxLength)
{
        Vector   vector   =   new   Vector();
        String   strText   =   " ";
        byte[]   arrByte   =   null;
        int   intStartIndex   =   0;
        int   intEndIndex   =   0;
        int   index   =   0;
        int   count   =   0;
        String[]   arrReturn   =   null;

        if(intMaxLength   <=   1)
        {
              System.err.println( "error:intMaxLength   <=   1 ");
              return   null;
        }

        if(strMain   ==   null)   return   new   String[0];
        if(strMain.trim().equals( " "))   return   new   String[]{ " "};


        arrByte   =   strMain.getBytes();
        intEndIndex   =   0;

        while(true)
        {
          intStartIndex   =   int   EndIndex;
          intEndIndex   =   intStartIndex   =   intMaxLength;

          if(intStartIndex   > =   arrByte.length)   break;
 
          if(intEndIndex> arrByte.length)
          {
                intEndIndex   =   arrByte.length;
                strText   =   new   String(arrByte,intStartIndex,
                                                                          intEndIndex-intStartIndex);
                vector.add(strText);
                break;
            }

            count   =   0;
            for(index   =   intStartIndex;index   <   intEndIndex;index++)
                {
                  if(arrByte[index] <0)   count++;
                }
           
            if(count%2   !=   0)   intEndIndex--;
         
            strText   =   new   String(arrByte,intStartIndex-intStartIndex);
            vector.add(strText);
            }

            arrReturn   =   new   String[vector.size()];


            for(index   =   0;   index <vector.size();   index++)
              {
                    arrReturn[index]   =   (String)vector.get(index);
              }

                return   arrReturn;
    }

[解决办法]
这段代码没问题吗,有些地方怪怪的,像
intStartIndex = int EndIndex;
intEndIndex = intStartIndex = intMaxLength;

strText = new String(arrByte,intStartIndex-intStartIndex);

怎么看都觉得不对啊,而且运行起来会出现堆异常,会出现死循环
[解决办法]
楼主你贴的代码有问题,编译都通过不了,你看看, intStartIndex = int EndIndex;这是JAVA的语法吗,不知道,这里是什么代码呀.
[解决办法]
程序本身是很简单的,都没什么算法,我估计是某个程序片段。
[解决办法]
是不是intStartIndex = intEndIndex
[解决办法]
还没仔细研究代码,测试了一下,应该就是分割字符串,例如参数中strMain= "helloworld ",intMaxLength=5,那么返回的结果就是str[0]=hello,str[1]=world,这个返回值是String[]
[解决办法]
分割字符串,按照intMaxLength的字节长度进行截取,放到数组里,最后返回数组。
[解决办法]
这段代码实现的功能是将strMain的值分段放到一个数组中。
  前面的有几个判断,如果intMaxLength的值小于等于1,则显示“error:intMaxLength <= 1”提示信息并null,如果strMain的值是null,则返回一个长度为0的数组,如果strMain的值为 " ",则返回一个长度为1,值为空的数组。
  如果strMain和intMaxLength的值输入正常,则strMain的值通过循环分段存储在一个数组中,每段字符串的长度为intMaxLength,如果长度小于intMaxLength,直接放入数组的一个下标中。因为这个方法的返回值类型是Object,所以系统自动将数组类型向上转型为Object类型。

比如strMain的值是:123456789,intMaxLength的值是:4,存储在数组中是数据格式是
{ "1234 ", "5678 ", "9 "}
比如strMain的值是:123456789,intMaxLength的值是:5,存储在数组中是数据格式是
{ "12345 ", "6789 "}

热点排行