按字节划分字符串

这个程序是用于按字节划分字符串,因为汉字占2个字节,而字母数字只占一个字节,因此要考虑汉字的划分问题,不能把汉字给拆了。

程序最主要是用了正则表达式(Regular Expression)Regex。String m = "[\u4e00-\u9fa5]";

汉字在Unicode中的编码占据4e00-9fa5的部分。

import java.util.Scanner; //按字节截取字符串,还要保证汉字不被截取为半个,汉字占2个字节,而字母占1个字节 public class InterceptStr { static String ss; // 要截取的string static int n; // 截取的字节个数 public static void main(String[] args) { System.out.println("请输入字符串:"); Scanner inputStr = new Scanner(System.in); ss = inputStr.next(); System.out.println("请输入要划分字节数:"); Scanner inputInt = new Scanner(System.in); n = inputInt.nextInt(); interception(setValue()); } private static void interception(String[] string) { int count = 0; String m = "[\u4e00-\u9fa5]"; // 汉字的正则表达式 System.out.println("以每" + n + "字节划分的字符串如下所示:"); for (int i = 0; i < string.length; i++) { if (string[i].matches(m)) { // 将字符串数组中的每个元素与regex匹配 count += 2; // 是汉字 } else count++; if (count < n) System.out.print(string[i]); else if (count == n) { System.out.print(string[i]); count = 0; System.out.println(); } else { count = 0; System.out.println(); } } } // 将字符串转换为字符串数组 private 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; } }
运行结果:

请输入字符串:
2011年12月7日天气晴星期5
请输入要划分字节数:
3
以每3字节划分的字符串如下所示:
201
1年
12
7日


期5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值