Java输出字符串的前n个字节

来源:互联网 发布:李天生sql视频教程 编辑:程序博客网 时间:2024/06/07 12:40

所需知识:汉字字符占两个字节,英文字符占一个字节,如何判断汉字还是英文。

                 [ \u4e00-\u9fa5]是汉字的正则表达式,包含了所有汉字的unicode编码。故将每个字符匹配该表达式可以判断是否是汉字。string[i].matchs();

                     参考: http://blog.csdn.net/tinyletero/article/details/8201465

 
package cn;import java.util.*;public class StringCutting {private static int n;private static String ss;/** * StringCut函数是输出字符串的前n个字节 * */public static void StringCut(String[] str){int count=0;String zhengze_hanzi="[\u4e00-\u9fa5]";//汉字的正则表达式for(int i=0;i<str.length;i++){if(str[i].matches(zhengze_hanzi)){    //将每个字符与正则表达式进行匹配,返回true或者false。count+=2;}else {count+=1;}if (count<n){System.out.println(str[i]);}else if(count==n){System.out.println(str[i]);}else {break;}}}/** * SetValue()函数是将字符串ss转化成为字符串数组,因为matchs函数的参数是字符串而不是字符。 * */public static String[] SetValue(){String[] string=new String[ss.length()];for (int i=0;i<ss.length();i++){string[i]=ss.substring(i,i+1);}return string;}public static void main(String[] args) {System.out.println("please input one string here!"+"");Scanner in = new Scanner(System.in);    //Scanner类ss=in.next();//从键盘获取字符串System.out.println("The string is: "+ss);System.out.println("please input one number here! ");n=in.nextInt();//从键盘获取字符串,并以数值的形式取出来。System.out.println("The number is: "+n);StringCut(SetValue());}}
 
 
运行结果如图:
 
原创粉丝点击