谁能帮我分析一下这个程序?十分感谢
这段程序的作用是什么?急切,大家帮分析分析,感激不尽!
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 "}