JAVA中:中英文混合的字符串按字节截取问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 15:31:59
现有一个很长中的英文混合的字符串(假如个数有两千万),怎么高效率的取左边10000个或者50000个字节的字符串?

如果一个一个取出再算长度实在太慢了。

我的QQ是 272867141 昵称是:浪迹天涯
String str="a中c国d人w";
str.subString(0,3);这个方法是按个数截取的,不是按字节截取的。

字符串有截取方法呀。。。。。
字符长度受你内存大小的影响~~~
String str="abc...";这样定义的字符串是存在字符串池中的
String str=new String("abc...")这样定义的字符串是在堆内存中的,然后 被栈内存的对象str引用
所以字符串是对象,是在内存中存储的,不像基本数据类型有各自的长度,字符串应该是只要是内存不满,是没有长度限制的
substring方法
String a="awdadadada342342424242424242424242";
String first10000=a.substring(0,9999);
String end10000=a.substring(a.length-9999);
希望能帮到你!!

不明白你什么意思,直接取不可以吗?
subString(0,50000);
这么大的字符串怎么放?文件还是数据库?
文件可以直接读取前10000字节就可以了,数据库也可以直接截取呀,都比读到内存中然后再操作要高效

可以写个小的算法,每次取这个范围内的字符判断,然后再取一半根据大小判断.
比如:10000个可以先用substring截7500个字符(最少5000,最多10000,取一半),然后根据字节数大小,再按一半的方式进行截(如果比10000字节少,就取5000-7500中间的 ,如果多,就取7500-10000),依次类推就可以了,直到取得结果.

这样应该是次数最少的了

楼上的同志们说的都有道理,你可以不这样处理字符串,可以把字符串变成一个个的字符数组来处理。String自带toCharArray()方法,可以自行转换,这样处理起来可以得心应手。
其实在做Java编程的时候,不要啃住一个骨头不放,方法是灵活的,思路更是灵活的,实际情况也是多变的。就像你说的一个长达几万字符的截取,就不会再用String去做了,这样不仅没有效率,而且你会发现程序冗长无力。实际上,没有人会去做截取这么长的字符