《疯狂java》第四章的习题4,要求按字节来截取字符串,一个英文字符(数字应该也算)为1字节,一个中文字符为2字节。这里需要区分中文字符和英文字符,简单的想法是先将字符串转化为字符数组,通过字符的大小比较就可以区分,代码如下:
package com.company;
import javax.xml.stream.events.Characters;
public class str_4_4 {
public static void main(String[] args){
String str="测试123";
String test="z";
char [] ch=str.toCharArray();
int a=1,b=5;
String stri=cut(str,a,b);
System.out.println(stri);
}
public static String cut(String str,int a,int b){
char[] ch=str.toCharArray();
int c=0;
String stri="";
for(int x =0;x<str.length();x++){
if (ch[x]<='z'){
if(c>=a &&c<b){
stri+=ch[x];
}
c++;
}else {
if (c >= a && c < b - 1) {
stri += ch[x];
}
c += 2;
}
}
return stri;
}
}