`
Mint_Grass
  • 浏览: 62753 次
  • 性别: Icon_minigender_1
  • 来自: 新疆
社区版块
存档分类
最新评论

java和Js 按字节来截取字符串长度(为了符合数据库varchar)

阅读更多
/**
 * 截取符合oracle varchar长度的字符集
 * 
 * @author 陈兵
 *
 */
public class SplitString {

	public static String subStringByByte(String str,int byteNum) throws Exception {
		byte bt[] = str.getBytes();
		System.out.println(" Length of this String ===> " + bt.length );
		if (byteNum >= 1) {
			if (byteNum > bt.length ){
				String substrx = new String(bt, 0, bt.length);
				return substrx;
			} else{
				String substrex = new String(bt, 0, byteNum);
				return substrex;
			}
		} else {
			System.out.println("输入错误!!!请输入大于零的整数:");
			throw new Exception();
		}

	}

	public static void main(String[] args){

		String str = "我我我ABC汉DEF我我我ABC汉DEF我我我ABC汉DEF我我我ABC汉DEF我我我ABC汉DEF我我我ABC汉DEF我我我ABC汉DEF我我我ABC汉DEF我我我ABC汉DEF我我我ABC汉DEF我我我ABC汉DEF我我我ABC汉DEF我我我ABC汉DEF我我我ABC汉DEF我我我ABC汉DEF我我我ABC汉DEF我我我ABC汉DEF";
		for(int i=1;i<=100;i++){
			try {
				String res = subStringByByte(str, i);
				System.out.println(res);
			} catch (Exception e) {
				// TODO 自动生成 catch 块
				e.printStackTrace();
			}
		}
		
	}
}


JS的截取方法:
function substr(str, len)
{
if( ! str || ! len)
{
return '';
}
// 预期计数:中文2字节,英文1字节
var a = 0;
// 循环计数
var i = 0;
// 临时字串
var temp = '';
for (i = 0; i < str.length; i ++ )
{
if (str.charCodeAt(i) > 255)
{
// 按照预期计数增加2
a += 2;
}
else
{
a ++ ;
}
// 如果增加计数后长度大于限定长度,就直接返回临时字符串
if(a > len)
{
return temp;

}
// 将当前内容加到临时字符串
temp += str.charAt(i);
}
// 如果全部是单字节字符,就直接返回源字符串
return str;
}



分享到:
评论

相关推荐

    VARCHAR与CHAR字符型数据的差异.docx

    char是固定长度的,而varchar会根据具体的长度来使用存储空间,另外varchar需要用额外的1-2个字节存储字符串长度。 1). 当字符串长度小于255时,用额外的1个字节来记录长度 2). 当字符串长度大于255时,用额外的2个...

    灵活截取字符串

    对于截取字符串,Oracle中有两个函数substr(),instr()截取规则的字符串使用起来较为方便,这里重新封装了一个函数 --调用函数参数说明: --num_char(str1 varchar2,str2 varchar2,indexs number) --str1 原字符串 --...

    SQL截取字符串函数分享

    截取从字符串左边开始N个字符 Declare @S1 varchar(100) Select @S1=’http://www.xrss.cn’ Select Left(@S1,4) ———————————— 显示结果: http B.截取从字符串右边开始N个字符(例如取字符www.163.com) ...

    Oracle接收长度大于4000的字符串

    Oracle接收长度大于4000的字符串 Oracle接收长度大于4000的字符串

    SQL 获取字符串中大写字母或小写字母

    DECLARE @s VARCHAR(MAX)= @words --待截取字符串 DECLARE @temp VARCHAR(MAX)='' --临时变量 SELECT @temp=@temp+SUBSTRING(ch, sv.number, 1) FROM (SELECT @s AS ch) t CROSS APPLY [master].dbo.spt_...

    varchar 和varchar2之间的联系和区别

    为了方便更好的设计数据库,特意为用户讲述了以下它们呢之间的关系!

    MySQL数据库varchar的限制规则说明

    MySQL数据库中varchar最大长度是多少?其实这不是一个固定的数字,varchar的长度是有限制规则的。本文我们就来介绍一下MySQL数据库中varchar的限制规则,并以一个实际的例子对限制规则进行了说明,接下来就让我们一...

    MySQL数据库char与varchar的区别分析及使用建议

    在MySQL数据库中,用的最多的字符型数据类型就是Varchar和Char.。这两种数据类型虽然都是用来存放字符型数据,但是无论从结构还是 从数据的保存方式来看,两者相差很大。而且其具体的实现方式,还依赖与存储引擎。我...

    自定义字符串自增java

    字符串的自增,自定义格式,可实现项目中由程序实现VARCHAR类型的主键自增

    Mysql中varchar长度设置方法

    主要介绍了Mysql中varchar长度设置方法的相关资料,本文还给大家带来了valar类型的变化及char()和varchar()的区别介绍,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    分组字符合并SQL语句 按某字段合并字符串之一(简单合并)

    标题:按某字段合并字符串之一(简单合并) 描述:将如下形式的数据按id字段合并value字段。 id value —– —— 1 aa 1 bb 2 aaa 2 bbb 2 ccc 需要得到结果: id value —— ———– 1 aa,bb 2 aaa,bbb,...

    数据库字符串Id生成器

    数据库字符串Id生成器,结合年月日时分秒等封装的id生成器,根据机器码来判定,不可能出现重复的id,数据库使用varchar类型或者bigint类型存储

    varChar和Char之间的区别?

    字符串:(1)Char:固定长度,长度为n个字节,取值范围1~8 000,存储大小是n个字节。 (2)Varchar:可变长度,n 的取值范围为1-8 000 。max 指定最大存储大小是 2^31-1 个字节。存储大小是输入数据的实际长度加...

    mysql 截取指定的两个字符串之间的内容

    如 现有字符串 “[]aseabcd[12345]ddxabcdsx[]”,要截取”abcd[” 和 “abcd[“之后的第一个 “]” 之间的内容 “12345”,当然当中的内容长度不是固定的,可以是”123456″ 或者其他字符串。 他问我的时候,我第一...

    oracle支持的数据类型

    VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749 NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes DATE 日期(日-月-...

    GP数据库表结构转mysql库、oracle库 varchar类型字段长度批量处理excel_MYSQL_oracle_数据库

    oracle数据库表结构转gp数据库表结构、转mysql、数据库时表字段长度问题

    sql自定义函数分组合并字符串列

    sql自定义函数,用于合并字符串列,可以在分组的情况下对varchar类型的字段合并

    mysql 数据库表结构对比java工具

    mysql 数据库结构对比工具 java 1.配置好两个数据库的账号密码数据库名称等信息 DbComparator db1 = new DbComparator("ip", null, "user", "password", "dbname", "47" ); ...

    用sql获取某字符串中的数字部分的语句

    代码如下: create ...剩余的为数字部分 END RETURN CONVERT(bigint,@No) END 此函数可以返回某字符串中的数字部分 PATINDEX函数 返回所查内容在字符串中第一次出现的索引 STUFF函数 删除指定长度的字符并在指定的

Global site tag (gtag.js) - Google Analytics