java长字符串代码,字符串长度代码

java怎么生成定长字符串

建议先写一个定字长的字符串,比如XXXXXXXXXX,然后通过通过字符串替换函数replaceAll(),来将X替换成你需要的那个字符就行了

创新互联专注于二道江网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供二道江营销型网站建设,二道江网站制作、二道江网页设计、二道江网站官网定制、成都微信小程序服务,打造二道江网络公司原创品牌,更为您提供二道江网站排名全网营销落地服务。

怎么解决java常量字符串过长?

String内部是以char数组的形式存储,数组的长度是int类型,那么String允许的最大长度就是Integer.MAX_VALUE = 2^31 - 1 = 2147483647。又由于java中的字符是以16位存储的,因此大概需要4GB的内存才能存储最大长度的字符串。

不过这仅仅是对字符串变量而言,如果是字符串常量,如“abc”、”1234”之类写在代码中的字符串str,那么允许的最大长度取决于字符串在常量池中的存储大小,也就是字符串在class格式文件中的存储格式:

CONSTANT_Utf8_info {

u1  tag;

u2  length;

u1  bytes[length];

}

u2是无符号的16位整数,因此理论上允许的string str的最大长度是2^16-1=65535。然而实际测试表明,允许的最大长度仅为65534,超过就编译错误。

一、sql语句字符串长度太长导致的报错代码

代码A:

String str = "567890123456789...0123456789";//由于字符串长度太长,所以省略一部分,长度是65535;

System.out.println(str.length());   //编译报错:Error:(14, 22) java: 常量字符串过长。

代码B:

String str = "67890123456789...0123456789";//由于字符串长度太长,所以省略一部分,长度是65534;

System.out.println(str.length());   //编译通过,运行结果为:65534。

代码C:

String str = "67890123456789...0123456789";//由于字符串长度太长,所以省略一部分,长度是65534;

str = "5" + str;

System.out.println(str.length());   //编译通过,运行结果为:65535。

参考资料

庄周梦蝶.博客[引用时间2018-1-22]

简单的JAVA字符串长度计算的实现

简单实现代码如下:

public

class

stringlength

{

/**

*

获取字符串的长度,如果有中文,则每个中文字符计为2位

*

@param

value

指定的字符串

*

@return

字符串的长度

*/

public

static

int

length(string

value)

{

int

valuelength

=

0;

string

chinese

=

"[\u0391-\uffe5]";

/*

获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1

*/

for

(int

i

=

0;

i

value.length();

i++)

{

/*

获取一个字符

*/

string

temp

=

value.substring(i,

i

+

1);

/*

判断是否为中文字符

*/

if

(temp.matches(chinese))

{

/*

中文字符长度为2

*/

valuelength

+=

2;

}

else

{

/*

其他字符长度为1

*/

valuelength

+=

1;

}

}

return

valuelength;

}

public

static

void

main(string

args[]){

string

str

=

"hello你好";

system.out.println(stringlength.length(str));

}

}

用java写一个程序,从一个很长的字符串中搜索出某一段字符,列出所有符合的字符

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class RecE {

Pattern pattern;

Matcher matcher;

/* ps:

字符类

[abc] a、b 或 c(简单类)

[^abc] 任何字符,除了 a、b 或 c(否定)

[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)

[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)

[a-z[def]] d、e 或 f(交集)

[a-z[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)

[a-z[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)

预定义字符类

. 任何字符(与行结束符可能匹配也可能不匹配)

\d 数字:[0-9]

\D 非数字: [^0-9]

\s 空白字符:[ \t\n\x0B\f\r]

\S 非空白字符:[^\s]

\w 单词字符:[a-zA-Z_0-9]

\W 非单词字符:[^\w]

*/

public void getMatchedPattern(String regx,String source){

pattern = Pattern.compile(regx);

matcher = pattern.matcher(source);

int index = 1;

while(!matcher.hitEnd()){

if(matcher.find()){

System.out.println("找到第"+index +"个"+matcher.group());

index++;

}

}

System.out.println("一共找到"+(index-1)+"组匹配项");

}

public static void main(String[] args) {

new RecE().getMatchedPattern("love","ilove12what i love23e tolove dolove a efe");

}

}

结果:

找到第2个love

找到第3个love

找到第4个love

一共找到4组匹配项


分享名称:java长字符串代码,字符串长度代码
分享地址:http://ybzwz.com/article/dsijpgo.html