Java编写截取字符串的函数
2013-08-26 22:40
260 查看
import java.util.Scanner; /* * 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 */ public class SplitString { String SplitStr; StringBuffer sb; int SplitByte; public SplitString(StringBuffer str, int bytes) { SplitStr = str.toString(); SplitByte = bytes; sb = str; System.out.println("The String is:′" + SplitStr + "′;SplitBytes=" + SplitByte); } public boolean isHan(char c) { if (c > 126 || c < 0) {// 双字节字符串判断是不是汉字 return true; } else { return false; } } public void SplitIt() { // String temp = ""; int len = SplitStr.length(); int a = 0;// 计算汉字的个数 int b = SplitByte;// 保存截取间隔 if (SplitByte % 2 != 0)// 截取间隔如果是奇数,偶数则不需要处理 SplitByte = SplitByte - 1; for (int i = 0; i < SplitStr.length(); i++) { if (isHan(SplitStr.charAt(i))) { len++; a++; // temp=SplitStr.substring(0,i-1)+SplitStr.charAt(i)+SplitStr.substring(i+1,len); // System.out.println("temp"+temp); sb.insert(i + a, " ");// 将有汉字的地方插一个空格 } } SplitStr = sb.toString(); System.out.println(SplitStr); int loopCount; loopCount = (len % SplitByte == 0) ? (len / SplitByte) : (len / SplitByte + 1); System.out.println("loop " + loopCount); for (int i = 0; i < loopCount; i++) { String s = ""; if (i == loopCount - 1) { s = SplitStr.substring(i * SplitByte, len).replaceAll(" ", "");// 将空格替换掉 System.out.println(s); } else { s = SplitStr.substring(i * SplitByte, ((i + 1) * SplitByte)) .replaceAll(" ", ""); System.out.println(s); } } } public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("请输入字符串:"); String str = in.nextLine(); System.out.println("请输入截取间隔:"); int len = in.nextInt(); StringBuffer sb = new StringBuffer(str);// String to StringBuffer SplitString ss = new SplitString(sb, len); ss.SplitIt(); } }
运行效果偶数截取没问题,奇数截取还有点问题希望大家指正
相关文章推荐
- java 面试中的一道编写一个截取字符串的函数
- 10、 java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 要求不能出现截半的情况
- 10、 java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 要求不能出现截半的情况
- 【Java】编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
- Java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串
- Java编写一个截取字符串的函数,输入一个为字符串和字节数,输出按字节截取的字符串。要求不能出现截半的情况
- 面试题之java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 要求不能出现截半的情况
- 【转载】java 面试中的一道编写一个截取字符串的函数
- java 面试中的一道编写一个截取字符串的函数!!!!
- java 面试中的一道编写一个截取字符串的函数
- java编写截取字符串的函数
- 【每天算法4】编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
- 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个。
- java字符串处理常用函数(数字型和字符串转换,字符串拆分、查找、截取)
- mysql截取函数常用方法 即mysql 字符串 截取-- - 最后带上java字符串截取规则比较
- 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个。
- 编写将给定字符串倒序输出的函数[Java笔试题]
- 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
- Java字符串截取函数substring
- 编写一个截取字符串的函数,按字节截取