黑马程序员技术交流社区

标题: 如何将字符串切割成固定长度的子串啊? [打印本页]

作者: 逍遥呆    时间: 2014-9-24 21:49
标题: 如何将字符串切割成固定长度的子串啊?
举个例子
有个字符串:hdshajkghkjfijdge
要求5个字符成一个串结果就是:
hdsha
jkghk
jfijd
ge
方法不限,做一道题,卡在这了,希望帮帮忙
如果能用正则最好
作者: fantacyleo    时间: 2014-9-24 22:19
用正则是杀鸡用牛刀了
  1. void splitStringEveryFiveCharacters(String s) {
  2. 、int start = 0, end = 0;
  3.    int len = s.length();
  4.     while (start < len) {
  5.         end = start + 5 > len ? len : start + 5;
  6.         System.out.println(s.subString(start, end));
  7.         start += 5;
  8.     }
  9. }
复制代码

作者: 逍遥呆    时间: 2014-9-24 22:22
fantacyleo 发表于 2014-9-24 22:19
用正则是杀鸡用牛刀了

能用正则吗?能也写下吗
作者: 思维    时间: 2014-9-24 22:33
送我几个黑马币就把我的答案拿走吧!
  1. import java.util.regex.*;
  2. class SplitDemo{
  3.         public static void main(String[] args){
  4.                 String str = "hdshajkghkjfijdge";
  5.                 String regStr = "(.){5}";
  6.                 Pattern p = Pattern.compile(regStr);
  7.                 Matcher m = p.matcher(str);
  8.                 int n = 0;
  9.                 while(m.find()){
  10.                         System.out.println(m.group());
  11.                         n = m.end();
  12.                 }
  13.                 System.out.println(str.substring(n));
  14.         }
  15. }
复制代码


作者: 思维    时间: 2014-9-24 22:38
我的可是标准的正则啊!如果这是基础测试题,你提问下还好,如果这是入学测试题,劝你最好别问了,实事求是的来吧!:)
作者: 逍遥呆    时间: 2014-9-24 22:48
思维 发表于 2014-9-24 22:38
我的可是标准的正则啊!如果这是基础测试题,你提问下还好,如果这是入学测试题,劝你最好别问了,实事求是 ...

为什么?这不算是全部,只是我要编的一部分。
作者: 思维    时间: 2014-9-24 22:52
自己想出答案来会有意想不到的收获!我做金额的大小写转换时,自己想了一天解决的!做完之后感觉正则表达式的问题基本上简单的都能解决了!刚才给你的答案也是我临时写的,以前没写过,基本看了一遍问题就有思路了!
作者: 思维    时间: 2014-9-24 22:54
本帖最后由 思维 于 2014-9-24 23:38 编辑


我的是切割任意5个字符,如果限定单词字符的话就用\w就可以
作者: 逍遥呆    时间: 2014-9-24 23:21
思维 发表于 2014-9-24 22:54
我的是切割任意5个字符,如果限定字母的话就用\w就可以

谢谢,我刚刚,又把正则那看了一遍,我获取那当时可能看的有点晕,所以这个不会,又看了一遍理解了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2