MyException - 我的异常网
当前位置:我的异常网» Java Web开发 » 高分关于循环取内容的有关问题

高分关于循环取内容的有关问题(2)

www.MyException.Cn  网友分享于:2015-08-27  浏览:9次



String array[][]=new String[str.length/8][8];
int i=0;
int j=0;

for(i=0;i <str/8;i++){
for(j=0;j <8;j++){
array[i][j]=将str的字符按顺序存入数组
}
}

每行是要的一组数。
------解决方案--------------------
太简单了吧..

<html>
<table>
<tr>
<td> 数组(一行一条字符串) </td>
<td> 数据8位字符当长度 </td>
</tr>
<tr>
<td> <textarea rows=8 cols=64 id=taArray>
sadkfjasdf
asdfas
dfasdfas
</textarea> </td>
<td> <textarea rows=8 cols=64 id=taData> </textarea> </td>
</tr>
<tr>
<td align=right> <button onclick= "ToData() "> 把数组转换成数据 --&gt;--&gt; </button> </td>
<td> <button onclick= "ToArray() "> &lt;--&lt;-- 把数据还原成数组 </button> </td>
</tr>
</table>


<script>

function ToSize(len)
{
len=len.toString();
while(len.length <8)
len= "0 "+len;
return len;
}
function ParseSize(str)
{
return parseInt(str,10);
}

function ToData()
{
var arr=taArray.value.split( "\r\n ");
var sb=[];
for(var i=0;i <arr.length;i++)
{
var str=arr[i];
sb.push(ToSize(str.length));
sb.push(str);
}
taData.value=sb.join( " ");
}
function ToArray()
{
var str=taData.value;
var arr=[];
var index=0;
while(index <str.length)
{
var len=ParseSize(str.substr(index,8));
index+=8;
arr.push(str.substr(index,len));
index+=len;
}
taArray.value=arr.join( "\r\n ");
}
</script>
</html>

------解决方案--------------------
楼主第二个原始数据是错误地..第一个是正确地...用递归弄了个...C#版...
不管中间是否有什么数据...都可以正确读取..因为已经知道了第一个起始数据是8位.取得这个数据,得到第二个数据块的长度和位置...依次递归下去..一直到取完结果为止...

private static void a(int start){

string s = "00000008abcdabcd00000012aabbccddeeff00000007aabbccd00000001a00000003aaa ";
if ( start == s.Length )
return ;
int len = Convert.ToInt32( s.Substring(start,8) );
string item = s.Substring( start+8,len );
int nextPos = start + item.Length + 8;
Console.WriteLine( item + "( "+ item.Length + ")\t " + len );

a( nextPos );
}

调用的时候:
a(0);

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有