导航:首页 > 编程语言 > java截取中文字符串

java截取中文字符串

发布时间:2022-10-24 22:23:20

java 怎么截取指定长度的中文数字串

通过char值去判断字符串里面的汉字,在截取的范围内,每出现一个汉字,截取时长度+1

Ⅱ java中截取字符串

用java中String类里的split();方法 这一方法支持正则表达式
用法
String str=“1234567.1234”;
String [] strs = str.split("[.]");
就可以得到数组 strs[0] =1234567; strs[1] =1234

Ⅲ java截取中文字符串。

public static void main(String args[])
{
String str="看看以下回答是否解决了您的疑问" ;
//提取子字符串,头一个表示开头的索引(包括),后一个表示结束的索引(不包括)
//索引是在字符串的位置,从0开始
//str.substring(0, 7)表示从第0位到第6位(因为不包含第七位)
//英文字符串也是类似的
String substr = str.substring(0, 7) ;
System.out.println(substr);
}

Ⅳ java截取汉字字符串问题

如果说,“中国工商银行广东分行”这样的名称是每行报文的第一个出现的字符串,那么就很简单了,String name = line.split(" ")[0];//""里面的是一个空格. 这样就行了

如果不是每行报文中第一个出现的,那就这样:

String khmc = line.substring(100,130)
khmc = khmc.split(" ")[0];

这样也行

Ⅳ java 截取字符串第一个字符

使用substring() 方法返回字符串的子字符串。详细解析如下:

1、语法:

(1)public String substring(int beginIndex)。

(2)public String substring(int beginIndex, int endIndex)。

2、参数:

(1)beginIndex -- 起始索引(包括), 索引从 0 开始。

(2)endIndex -- 结束索引(不包括)。

3、返回值:

返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,一直到索引 endIndex - 1处的字符。因此,该子字符串的长度为 endIndex-beginIndex。

4、substring函数存在的抛出错误:

IndexOutOfBoundsException - 如果 beginIndex 为负,或 endIndex 大于此 String 对象的长度,或 beginIndex 大于 endIndex。

5、实例代码如下:

Ⅵ 求截取带中文的字符串的java方法。

楼主你好,很高兴能回答你这个很有挑战性的问题,首先我谈谈我对上面9个例子的理解,即这个方法应该实现的功能:

这个方法与JDKString原有的方法substring是有区别的,在这个方法里,一个中文汉字相当于占2个英文字符的位置。而且根据方法传入的参数pStart和pEnd在返回相应的子字符串child

如果pstart刚好在某个汉字的前半部分,则child应包含该汉字,在后部分则不含。与之相对应的是pEnd如果在某个汉字的后半部分,则child应含该汉字,否则不包含,如果pStart超出pStr的长度(这里一个汉字长度算2),则返回空,其他性质和JDK的性质形同。

如果觉得我的理解不错,且看下面的代码:

publicclassTest{

publicTest(){

Stringstr="ABCDE";

Stringstr2="ABC你D";

Stringstr3="A你B好C吗勇DE";

System.out.println("1str='ABCDE'start=1end=5结果:"+getSubString(str,1,5));

System.out.println("2str='ABCDE'start=1end=4结果:"+getSubString(str,1,4));

System.out.println("3str='ABCDE'start=2end=4结果:"+getSubString(str,2,4));

System.out.println("4str='ABCDE'start=6end=7结果:"+getSubString(str,6,7));

System.out.println("5str='ABCDE'start=5end=5结果:"+getSubString(str,5,5));

System.out.println("6str2='ABC你D'start=1end=3结果:"+getSubString(str2,1,3));

System.out.println("7str2='ABC你D'start=1end=4结果:"+getSubString(str2,1,4));

System.out.println("8str2='ABC你D'start=1end=5结果:"+getSubString(str2,1,5));

System.out.println("9str2='ABC你D'start=4end=4结果:"+getSubString(str2,4,4));

System.out.println("10str3='A你B好C吗勇DE'start=9end=10结果:"+getSubString(str3,9,10));

}

publicstaticvoidmain(Stringargs[]){

newTest();

}

publicStringgetSubString(Stringstr,intpstart,intpend){

Stringresu="";

intbeg=0;

intend=0;

intcount1=0;

char[]temp=newchar[str.length()];

str.getChars(0,str.length(),temp,0);

boolean[]bol=newboolean[str.length()];

for(inti=0;i<temp.length;i++){

bol[i]=false;

if((int)temp[i]>255){//说明是中文

count1++;

bol[i]=true;

}

}

if(pstart>str.length()+count1){

resu=null;

}

if(pstart>pend){

resu=null;

}

if(pstart<1){

beg=0;

}else{

beg=pstart-1;

}

if(pend>str.length()+count1){

end=str.length()+count1;

}else{

end=pend;//在substring的末尾一样

}

//下面开始求应该返回的字符串

if(resu!=null){

if(beg==end){

intcount=0;

if(beg==0){

if(bol[0]==true)

resu=null;

else

resu=newString(temp,0,1);

}else{

intlen=beg;//zheli

for(inty=0;y<len;y++){//表示他前面是否有中文,不管自己

if(bol[y]==true)

count++;

len--;//想明白为什么len--

}

//for循环运行完毕后,len的值就代表在正常字符串中,目标beg的上一字符的索引值

if(count==0){//说明前面没有中文

if((int)temp[beg]>255)//说明自己是中文

resu=null;//返回空

else

resu=newString(temp,beg,1);

}else{//前面有中文,那么一个中文应与2个字符相对

if((int)temp[len+1]>255)//说明自己是中文

resu=null;//返回空

else

resu=newString(temp,len+1,1);

}

}

}else{//下面是正常情况下的比较

inttemSt=beg;

inttemEd=end-1;//这里减掉一

for(inti=0;i<temSt;i++){

if(bol[i]==true)

temSt--;

}//循环完毕后temSt表示前字符的正常索引

for(intj=0;j<temEd;j++){

if(bol[j]==true)

temEd--;

}//循环完毕后temEd-1表示最后字符的正常索引

if(bol[temSt]==true)//说明是字符,说明索引本身是汉字的后半部分,那么应该是不能取的

{

intcont=0;

for(inti=0;i<=temSt;i++){

cont++;

if(bol[i]==true)

cont++;

}

if(pstart==cont)//是偶数不应包含,如果pstart<cont则要包含

temSt++;//从下一位开始

}

if(bol[temEd]==true){//因为temEd表示substring的最面参数,此处是一个汉字,下面要确定是否应该含这个汉字

intcont=0;

for(inti=0;i<=temEd;i++){

cont++;

if(bol[i]==true)

cont++;

}

if(pend<cont)//是汉字的前半部分不应包含

temEd--;//所以只取到前一个

}

if(temSt==temEd){

resu=newString(temp,temSt,1);

}elseif(temSt>temEd){

resu=null;

}else{

resu=str.substring(temSt,temEd+1);

}

}

}

returnresu;//返回结果

}

}

测试结果如图,并且可以任意修改字符串,保证结果正确。

That'sall!

Ⅶ java中如何截取字符串中的指定一部分

java用substring函数截取string中一段字符串

在String中有两个substring()函数,如下:

一:String.substring(intstart)

参数:

start:要截取位置的索引

返回:

从start开始到结束的字符串

例如:Stringstr="helloword!";System.out.println(str.substring(1));

System.out.println(str.substring(3));

System.out.println(str.substring(6));

将得到结果为:

elloword!

loword!

ord!

如果start大于字符串的长度将会抛出越界异常;

二:String.substring(intbeginIndex,intendIndex)

参数:

beginIndex开始位置索引

endIndex结束位置索引

返回:

从beginIndex位置到endIndex位置内的字符串

例如:Stringstr="helloword!";

System.out.println(str.substring(1,4));

System.out.println(str.substring(3,5));

System.out.println(str.substring(0,4));

将得到结果为:

ell

lo

hell

如果startIndex和endIndex其中有越界的将会抛出越界异常。

Ⅷ Java如何截取字符串

这个是个JSON 字符串。使用json相关的库处理,比如Json-Path。
import com.jayway.jsonpath.JsonPath;

public class Main{
public static void main(String[] args) {
String json = "{\"第一个数\":\"1\",\"第二个数\":\"2\"}";

var number1 = JsonPath.read(json, "$.第一个数");
System.out.println(number1);
var number2 = JsonPath.read(json, "$.第二个数");
System.out.println(number2);
}
}

Ⅸ java截取指定字符串中的某段字符如何实现

如下图,给你贴出了代码段。可以利用字符串的substring函数来进行截取。

结果是:456789(注意:包括4。)

示例:

"hamburger".substring(3,8) returns "burge"

"smiles".substring(0,5) returns "smile"

Ⅹ java怎么把字符串中的的汉字取出来

1.判断字符串是否全是汉字。

String str1 = "java判断是否为汉字"

String str2 = "全为汉字"

String reg = "[\u4e00-\u9fa5]+"

boolean result1 = str1.matches(reg)//false

boolean result2 = str2.matches(reg)//true

2.提取字符串中的汉字。

String str = "java怎么把asdasd字符串中的asdasd的汉字取出来"

String reg = "[^u4e00-u9fa5]"

str = str.replaceAll(reg, " ")

System.out.println(str)

3.判断字符串中是否含有汉字。

boolean result = (str.length() == str.getBytes().length)//true:无汉字 false:有汉字

4.获取字符串中汉字的个数。

int count = 0

String reg = "[\u4e00-\u9fa5]"

String str = "java获取汉字Chinese的个数"

Pattern p = Pattern.compile(reg)

Matcher m = p.matcher(str)

while (m.find()) {for (int i = 0; i <= m.groupCount(); i++) {count = count + 1}}

System.out.println("共有汉字 " + count + "个 ")

阅读全文

与java截取中文字符串相关的资料

热点内容
文件系统pdf 浏览:760
原神安卓区服什么意思 浏览:34
贝壳app怎么线上发布 浏览:157
如何挑选安卓系统机顶盒 浏览:53
安卓快充使用有什么注意事项 浏览:909
黑马程序员的云计算网课 浏览:946
endnotestyle文件夹怎么导入 浏览:460
讲解少儿编程演讲会开头 浏览:424
思科交换机基础命令 浏览:497
便签可以设置加密吗 浏览:339
免费漫画app怎么看书 浏览:27
华为笔记本电脑怎么安装抖音app 浏览:412
阿里云国际版试用的服务器怎么搞 浏览:895
java正则表达式工具 浏览:160
oa服务器怎么设置ftp 浏览:10
安卓如何安装obb 浏览:442
QQ聊天记录journal文件夹 浏览:118
苹果公司云服务器地址 浏览:85
加密记事本手机 浏览:437
汽车压缩机变频阀 浏览:95