`

0806--中文字符处理

阅读更多

设计函数,输入为一个字符串,里面包含中文、英文、数字等字符,编码为GBK。中文字符的编码规则假定为:双字节组成,高字节大于0x80,低字节任意。

 

a)用常用语言编写函数,实现功能为:按顺序提取输入文本中中文字符,形成新的文本串返回调用者。

  

b)如果调用者又是希望输入串的全中文内容,有时希望得到英文内容,那么函数应如何设计

  

c)如果调用者希望获取输入串中包含中文、英文和数字这三种字符中的一种或者多种需求不定时,函数应如何设计

 

 

import java.util.*;


interface GetData{
	public void getChar(String str);
	
}

class  GetChi implements GetData{
		public void getChar(String str){
			byte[] bstr=str.getBytes();
			String ret="";
			int index=0;
			for(int i=0;i<bstr.length;i++){
				if(bstr[i]<0){
					i++;
					char c=str.charAt(index);
					ret=ret+String.valueOf(c);
				}
				index++;
			}
			System.out.println("中文字符:"+ret);
		}
}
class GetEng implements GetData{
	public void getChar(String str){
		byte[] bstr=str.getBytes();
		String ret="";
		int index=0;
		for(int i=0;i<bstr.length;i++){
			if((bstr[i]>=97 && bstr[i]<=122 )||(bstr[i]>=65 && bstr[i]<=90)){
				ret=ret+String.valueOf(str.charAt(index));
				
			}else if(bstr[i]<0){
				i++;
			}
			index++;
		}
		System.out.println("英文字符:"+ret);
		
	}
	
}

class GetDigit implements GetData{
	public void getChar(String str){
		byte[] bstr=str.getBytes();
		String ret="";
		int index=0;
		for(int i=0;i<bstr.length;i++){
			if(Character.isDigit(bstr[i])){
				ret=ret+String.valueOf(str.charAt(index));
			}else if(bstr[i]<0){
				i++;
			}
			index++;
		}
		
		System.out.println("数字字符:"+ret);
	}
}

class Composite implements GetData{
	List<GetData> list;
	public Composite(){
		list=new ArrayList<GetData>();
	}
	public void getChar(String str){
		Iterator it=list.iterator();
		while(it.hasNext()){
			GetData g=(GetData)it.next();
			g.getChar(str);
			
		}
	
	}
	public void addTask(GetData g){
		list.add(g);
		
	}
}

public class TestGetData{
	public static void main(String[] args){
		GetData g1=new GetChi();
		GetData g2=new GetEng();
		GetData g3=new GetDigit();
		GetData gg=new Composite();
		gc.addTask(g1);
		gc.addTask(g2);
		gg.getChar("abc123黄老师");
	}
	
}

 

分享到:
评论

相关推荐

    C++ 汉字UTF-8字符串处理类库

    很多人喜欢用CString 或std:string,但是他们的缺点是不能完成汉字各种类型之间的转换,提供三种类库ascString,ucsString,utfString以及工具utfCount,utf8_ucs2_t,tcf8_ucs4_t类库,用于各种字符串之间的直接转换`...

    director正则表达式插件--强大的字符串匹配工具 demo

    director正则表达式插件--强大的字符串匹配工具 demo, 正则表达式功能很强大,匹配字符串很容易,现在,在director中借助这款插件,也可以实现正式表达式的功能了,lingo处理字符串更加容易。

    Java中文字符处理.docx

    java中文字符处理 1. 判断字符串是否全为汉字 2. 提取字符串中的汉字 3. 判断字符串中是否含有汉字 4. 获取字符串中汉字的个数 java一般的中文判断都是利用正则表达式

    C#调用C/C++DLL收取中文字符处理

     从DLL收读取字符串时遇到中文乱码,这里总结一下C#收取字符串时的处理。  C/C++字符串一般通过char* 或wchar_t*来表示,char*表示的是ANSCII字符串, wchar_t*表示Unicode字符串,Unicode字符串在C/C++中一个...

    表的相关查询(最全面的查询语句集合)

    --提取中文 --3.2 从字符串中取固定数量的字段 --3.3 关于字符串拆分 --3.3.3.游标循环法: --SQL2000/2005字符串拆分为列表通用函数 --SQL2005以上版本可以结合apply进行拆分列值 --4、FOR XML PATH 语句的应用 --5...

    Java 所有字符串转UTF-8 万能工具类-GetEncode.java

    不需要关心接受的字符串编码是UTF_8还是GBK,还是ios-8859-1,自动转换为utf-8编码格式,无需判断字符串原有编码,用法://处理编码String newStr = GetEncode.transcode(oldStr);

    DB2字符串处理 字符串处理 db2 函数

    DB2字符串处理 字符串处理 db2 函数

    常用字符串文本处理方法

    常用的文本处理方法,比如过滤关键词。文本编码。...检测含中文字符串实际长度。截断字符串,如果str 的长度超过 need,则提取 str 的前 need 个字符,并在尾部加 “...”。将字符串中的html代码去掉。

    LY-51S 开发板函数集使用手册

    10、PutGB1616 --------------------显示16*16汉字 11、LCD_PutString --------------------显示字符串 12、Show_RGB -----------------------显示RGB颜色 13、show_photo--------------------------显示图片 14、...

    处理UTF-8格式字符串的便携PHP库.zip

    &lt;?... /* ...  *  * This library is free software; you can redistribute it and/or modify it ... * under the terms of the (at your ...用在网页上可以统一页面显示中文简体繁体及其它语言

    sphinx中文语音训练手册

    结巴分词可以处理中文、英文和数字混合的文件。 ——你可以按照上面的教程直接进行训练,而无需下载附件。当然,下载后评价一下,也可以回收你的1分。 由于csdn的文件大小限制,只能将用到的软件都删除了,请自行...

    西门子TP1200触摸屏不能显示汉字和摄氏度符号,中文字符显示异常的处理对策.docx

    西门子TP1200触摸屏不能显示汉字和摄氏度符号,中文字符显示异常的处理对策

    汉字识别源代码(图像处理) 英文字符

    英文字符 汉字识别源代码(图像处理) 汉字识别源代码(图像处理)汉字识别源代码(图像处理)

    js处理字符串中的汉字问题集锦

    计算字符串中中文个数,判断是否含有中文,以及包含中文的字符串长度等问题

    2.字符识别-汉字识别.zip

    机器视觉字符识别项目实战,从图像采集到识别完成 ,输出结果一整个的流程处理!机器视觉字符识别项目实战,从图像采集到识别完成 ,输出结果一整个的流程处理!机器视觉字符识别项目实战,从图像采集到识别完成 ,...

    Linux Opencv在图像上写中文字符

    Linux环境,利用Opencv freetype在图像上写中文字符,含字体文件、源码、CMakeLists配置

    嵌入式系统中QCAD中文字符处理方法分析与改进

    嵌入式系统中QCAD中文字符处理方法分析与改进,陈盈贵,鄢萍,QCAD采用笔划字符处理和显示图形中的字符。本文在分析了笔划字符处理方法的基础上,针对该方法处理中文字符占用系统资源大的问题�

    java自定义工具类,对字符串进行特殊处理

    1.删除字符 2.去空格 3.去除所有空格和特殊字符 4.判断邮箱 5.字符串集合转字符串 6.只保留汉字 7.关键词前后是否包含英文字母 8.去除字符串中的附件 9.获取下标单个位置和所有位置

    可以处理中英文字符串的CString类

    CString类在多字节字符集中处理中文字符串效果不太好,比如GetLength等函数得不到正确的结果,我继承CString类实现了一个可以处理中文的字符串处理类,解决了以上问题。在使用中可以完全替代CString类。

    Labview 字符串和UTF8的相互转换

    在做Labview和tcp通讯的时候,需要发送中文字符串,找了会相关资料,竟然找到了labview提供的现成的字符串到utf8相互转换的vi,整理了一下分享出来,2014环境下目前测试可以直接使用。原文...

Global site tag (gtag.js) - Google Analytics