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

java中文截取

发布时间:2023-07-03 01:51:08

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

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

‘贰’ java中如何截取字符串

截取字符串采用的是java中的split函数。
例把“01:大众汽车”截取为01和大众汽车,代码如下:
package test;

public class substringTest
{
public static void main(String args[])
{
String N = "01:大汽车";
String L="";
String R="";
int k= N.length();
for (int i = 0; i < N.length(); i++)
{
if (N.substring(i, i + 1).equals("|"))
{
L=N.substring(0,i).trim();
R=N.substring(i+1,k).trim();
}
else
{

}
System.out.println(L);
System.out.println(R);
}
}
}

‘叁’ 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截取字符串

public class StringTest {
public static void main(String[] args) {
String string = "file:/C:/Users/Administrator.SC-201805071245/Desktop/新建文件夹/demo-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/";

String substr = string.substring(string.indexOf("/")+1, string.substring(0, string.lastIndexOf(".jar")).lastIndexOf("/")+1);
System.out.println(substr);
}
}

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

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

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

示例:

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

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

‘陆’ java截取字符串函数

这个程序是通过先把字符串转换为byte 数组然后根据你要截取的字符串长度截取字符串的。
byte bt[] = str.getBytes(); //转化为字节数组。
if(bt[byteNum]<0)//判断截取的长度,截取的长度不能是否小于0
{
String substrx=new String(bt,0,--byteNum);
/*String(byte[] ascii, int hibyte)
已过时。 该方法无法将字节正确转换为字符。从 JDK 1.1 起,完成该转换的首选方法是通过 String 构造方法,该方法接受一个字符集名称或使用平台的默认字符集。*/

//建议: 学习的时候多看看API

‘柒’ 求截取带中文的字符串的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 截取字符串第一个字符

使用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中文截取相关的资料

热点内容
配置路由器默认路由的命令是 浏览:591
加密计算器是什么 浏览:120
服务器怎么执行sql 浏览:974
小孩子命令 浏览:708
贷款申请系统源码 浏览:268
windowsxp文件夹打开后怎么返回 浏览:664
怎么把pdf变成图片 浏览:797
17年程序员事件 浏览:496
iishttp压缩 浏览:31
公司文件加密后拷走能打开吗 浏览:186
headfirstjava中文 浏览:894
腾讯云服务器怎么放在电脑桌面 浏览:8
批量生成图片的app哪个好 浏览:496
小米10电池校准命令 浏览:96
移动商城系统app如何开发 浏览:692
用安卓手机如何发高清短视频 浏览:339
怎样运行java程序运行 浏览:553
海南根服务器镜像云服务器 浏览:536
weka聚类算法 浏览:452
视频服务器修复是什么意思 浏览:498