import javax.swing.JOptionPane;
public class PrintTheWord {
public static void main(String[] args) {
String s1 = JOptionPane.showInputDialog("Please enter string:");
String s2 = JOptionPane.showInputDialog("Please input the num:");
String[] ss = s1.split("");
int num = Integer.parseInt(s2);
for(int i = 1;i < ss.length;i += num){
for(int j = i;j < (i + num);j ++){
if(ss[j].matches("[\u4e00-\u9fa5]") && (j == (i + num - 1)) &&
(j != i)){
System.out.print("\n" + ss[j]);
} else{
System.out.print(ss[j] + "\t");
}
}
System.out.println("");
}
}
}
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF"6,应该输出"我ABC",而不是"我ABC+汉的半个"。
这道题应该有大虾很早前就做过了。按照我的思路我写了,去的num值为3,如果没有两或多个相连的汉字输出时没什么问题的。但是当有三个汉字时,有两个汉字就必然会连在一起。
求指教,谢谢!
string 汉字提取
------解决方案--------------------
一般不用""空字符串来作 split 函数的第一个参数。因为用 "" 来分隔某个字符串,在直观逻辑上是很不容易解释的。
如果非这么用,结果则是在最前面有这么个"".
比如
"abc".split("")的结果是{"","a","b","c"}
第一个总是 "".
很不容易解释,这样记住就好。
以后自己慢慢琢磨 API 文件中对split 函数的叙述。
我读的是英文的 API 文件,还真不会简单地拿中文来解释。
------解决方案--------------------
这个代码是有错误的.
下面根据<java 范例大全>的例子,把所有的都输出来,未经大量测试,楼主如发现有问题告诉我一下.
import javax.swing.JOptionPane;
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
public class PrintTheWordRotate{
public static void main(String[] args) throws Exception{
String s1 = JOptionPane.showInputDialog("Please enter string:");
String s2 = JOptionPane.showInputDialog("Please input the num:");
int num = Integer.parseInt(s2);
System.out.println("输入的字符串是: "+s1+" 分割的长度是 "+num);
List<String> list = getTotal(s1,num); //得到划分的字符串集合。
System.out.println(list);
}
//得到分割的子串放容器返回
//
public static List<String> getTotal(String s, int copyNum) {
List<String> list = new ArrayList<String>();