Ava实现剪切字符串,并按字节输出实例代码
前言:
请创建用于剪切字符串的函数,输入字符串和字节数,并输出为每字节剪切出的字符串。 但是,为了不像“我ABC”4那样切掉一半的汉字,应该切掉“我AB”,输入“我ABC汉def”6,输出“我ABC”“汉”而不是“我ABC”的一半。
2、解析思想
本题中容易困惑的是如何处理中文文字和英语文字。 这里需要考虑汉字和英语字符的占用字节数。 中文字符为2字节,英文字符为1字节。 理解了这个重点,写代码就很容易了。
3、Java代码
import java.util.Scanner;
公共类隔离{
静态字符串ss; //进行剪切操作的字符串
静态int n; //剪切的字符串的字节数
publicstaticvoidmain (字符串[ ] args ) {
请输入System.out.println ('字符串:
scanners CSTR=new scanner (system.in ); //从键盘获取字符串
ss=scStr.next (; 将Scanner对象的内容作为字符串检索
请输入System.out.println ('字节数:
sannerscbyte=new scanner (system.in ); //从键盘获取字符串
n=scByte.nextInt (; 将Scanner对象的内容作为数值提取
互联(setvalue ) ); //方法和方法的应用
}
公共静态字符串[ ] setvalue {//此方法的作用是将字符串转换为字符串数组
string [ ] string=new string [ ss.length (]; //创建字符数组string
for(intI=0; i string.length; I ) {
string[I]=ss.substring(I,i 1); //取出字符串ss的第I个字符,放入字符数组的字符串中
}
返回字符串; //返回此字符数组
}
publicstaticvoidinterception (字符串[ ]字符串) {
int count=0;
String m='[u4e00-u9fa5] '; //汉字正则表达式考试
system.out.println (以' n '字节分隔的字符串如下: ');
for(intI=0; i string.length; I ) {
将表与if(string[I].Matches(m ) )//字符数组中的每个元素匹配,如果相同,则返回true
计数器=计数器2; //当前字符为汉字时,在计数器count上加2
} else {
count=count 1; //如果当前字符不是汉字,则在计数器count上加1
}
if(countn )//在当前计数器count的值小于n的情况下,输出当前字符
system.out.print(string[I];
}elseif(count==n ) /当前计数器count的值为n时,输出当前字符
system.out.print(string[I];
计数=0;
System.out.println (; //循环结果需要换行符,并起到控制打印格式的作用
} else {
计数=0; //如果当前计数器count的值大于n,则清除计数器count,接着执行外部循环
System.out.println (;
}
}
}
}
感谢您的阅读。 希望对大家有帮助。 感谢您对本网站的支持。