正则表达式在java中将字符串拆分为一半
发布时间:2020-12-14 06:07:05 所属栏目:百科 来源:网络整理
导读:我们需要帮助如何为string.split编写正则表达式,这样我们就可以将字符串分成两半. 谢谢. 解决方法 没有明显的正则表达式可以做到这一点.也许可以用String.split来做到这一点,但我只是使用这样的子字符串: String s = "12345678abcdefgh"; final int mid = s
我们需要帮助如何为string.split编写正则表达式,这样我们就可以将字符串分成两半.
谢谢. 解决方法
没有明显的正则表达式可以做到这一点.也许可以用String.split来做到这一点,但我只是使用这样的子字符串:
String s = "12345678abcdefgh"; final int mid = s.length() / 2; String[] parts = { s.substring(0,mid),s.substring(mid),}; System.out.println(Arrays.toString(parts)); // "[12345678,abcdefgh]" 上面将分割一个奇数长度的字符串,部分[1]比部分[0]长一个字符.如果你需要反过来,那么只需定义mid =(s.length()1)/ 2; N部分拆分 您也可以执行以下操作将字符串拆分为N部分: static String[] splitN(String s,final int N) { final int base = s.length() / N; final int remainder = s.length() % N; String[] parts = new String[N]; for (int i = 0; i < N; i++) { int length = base + (i < remainder ? 1 : 0); parts[i] = s.substring(0,length); s = s.substring(length); } return parts; } 然后你可以这样做: String s = "123456789"; System.out.println(Arrays.toString(splitN(s,2))); // "[12345,6789]" System.out.println(Arrays.toString(splitN(s,3))); // "[123,456,789]" System.out.println(Arrays.toString(splitN(s,5))); // "[12,34,56,78,9]" System.out.println(Arrays.toString(splitN(s,10))); // "[1,2,3,4,5,6,7,8,9,]" 请注意,这有利于较早的部分来保存额外的字符,并且当部件的数量超过字符数时它也有效. 附录 在上面的代码中: >?:是条件运算符,也就是三元运算符. 参考 > JLS 15.25 Conditional Operator ?: 相关问题 > How does the ternary operator work? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |