자바 문자열 을 캡 처 하 는 함수 작성

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();
	}
}

실행 효과 짝수 캡 처 문제 없습니다.홀수 캡 처 에 문제 가 있 습 니 다.지적 해 주 십시오.

좋은 웹페이지 즐겨찾기