使用JAVA将一个字符串插入ORACLE数据库,中间字符串的字节数会不会发生变化?

 我来答
littleatp
2012-10-26 · TA获得超过852个赞
知道小有建树答主
回答量:307
采纳率:100%
帮助的人:380万
展开全部
不知道你是否问的是字符串存储空间的问题,字节数大小取决于存储所用的字符编码。
如果是utf-8则一个中文字符对应3个字节,ascii字符则1个字节...
追问
int i = getBytekazu(temp, 40);
if(i>=0){
temp = temp.subString(0,i);
}else{
temp = "";
}
private static int getBytekazu(String str, int index){
String strStart = "";
for(int i = str.length();i>=0;i--){
strStart = str.subString(0,i);
if(strStart.getBytes().length <= index){
return i;
}
}
return -1;
}
其中temp插入数据库,check后还是有数据长度超过40抛SQLException temp值实际长为41
追答
你现在用的是程序去检查它的字节长度,strStart.getBytes()用的是当前环境中的字符编码file.encoding.. windows下运行一般就是GBK的,linux下是UTF-8,如果是Eclipse工具的话要看设置。要小心这个区别。

另外,为何直接让getBytekazu方法直接返回一个合法的字符串呢,现在只是返回一个下标,然后又再做一下切割,不是多此一举吗。

不断的调用str.subString,会产生较多的字符串对象,要小心性能问题;

不知道你数据库字段用的是什么类型,如果能评估出一个合理的字符数限制,那么不必用getBytes去检查字节数,检查字符串长度更简单。
刺心之罪
2012-10-26
知道答主
回答量:6
采纳率:0%
帮助的人:9255
展开全部
因该不会
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式