当前位置:编程学习 > JAVA >>

linux&windows字符串截取~大神进

理论上这样截取字符串可以说是无缝的。
但是在linux下死活截取出问题
代码:
/**
 * @param oldStr  内容
 * @param start   起始
 * @param end     结束
 * @return        返回截取内同
 */
public String getChar(String oldStr, int start, int end) {
int length = end - start;
byte[] c = new byte[length];
System.arraycopy(oldStr.getBytes(), start, c, 0, length);
return new String(c);
}
在windows下可以正常完全截取但是在linux下在这块的时候截取数字竟然为空



又遇到过的大神指教两招。。。linux不是太熟。。。琢磨了半天还是没解决。。在线等


java 基础 --------------------编程问答-------------------- 直接实现吧,接字符串很简单,我猜测是System.arraycopy()这个方法应该依赖操作系统的某些借口的,之前工作中遇到System.getenv()方法在windows和linux上运行不兼容。

System类中的方法应该调用的都是操作系统提供的相关借口,并未做相关的兼容处理。所以建议你自己实现吧。 --------------------编程问答-------------------- 感谢二楼的兄弟~ 我在看看有没有其他办法。。现在主要解决到 中文转码GBK和GB2312都是中文占3个字节。。导致位置偏移。修改linux字符集不太现实。。。影响甚大。。。。所以正在研究其他途径。。。 --------------------编程问答-------------------- 用 UTF-8 试试呢 --------------------编程问答--------------------
引用 3 楼 defonds 的回复:
用 UTF-8 试试呢

很有可能是这个原因咯,编码不同意导致字符乱码然后截取失败。 --------------------编程问答-------------------- 顶楼上的两位专家。
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,