文档库 最新最全的文档下载
当前位置:文档库 › 判断输入的字符串是否为实数

判断输入的字符串是否为实数

判断输入的字符串是否为实数
判断输入的字符串是否为实数

/*

判断输入的字符串是否为实数

*/

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace isNumber

{

class Program

{

static void Main(string[] args)

{

string str;

Console.WriteLine("请输入一个字符串:");

str=Console.ReadLine();

if (isNumber(str))

Console.WriteLine("这是一个实数");

else

Console.WriteLine("这不是一个实数");

Console.ReadLine();

}

static bool isNumber(string str)

{

int dotpos, dotcount = 0, subcount = 0;//设置小数点位置,小数点总计,减符号总计

bool isNum = true;

char check;

char firstchar = str[0];

char lastchar = str[str.Length - 1];

for (int i = 0; i < str.Length; i++)

{

check = str[i];

if (!char.IsNumber(check) && check != '.' && check != '-')//字符中出现非数字,“.”,“-”的不是实数

{

isNum = false;

break;

}

if (check == '.')

{

dotpos = i;

if (firstchar == '-' && dotpos == 1)//形如“-.”,不是实数

{

isNum = false;

break;

}

}

else

{

if (check == '.')//小数点总计

dotcount++;

if (check == '-')//减号总计

subcount++;

}

}

if (str.Length > 1 && firstchar == '0' && str[1] != '.')//字符长度大于1,首字符为0,其后不为“.”的为非实数

isNum = false;

if (str.Length > 2 && firstchar == '-' && str[1] == '0' && str[2] != '.')//字符长度大于2,首字符为“-”,第二字符为“0”,其后不为“.”的为非实数

isNum = false;

if (dotcount > 1 || subcount > 1 || firstchar == '.' || lastchar == '.')//小数点多于1位,减号多于1位,首末字符为“.”的为非实数

isNum = false;

if (subcount == 1 && firstchar != '-')//存在1个减号但不在首字符的为非实数

isNum = false;

if(dotcount == 1 && str.Length < 3 || (subcount == 1 && dotcount == 1 && str.Length < 4))//存在1位小数点,字符长度小于3或者存在减号和小数点,字符长度小于4,这样的为非实数

isNum = false;

return isNum;

}

}

}

C#判断字符串是否为数字字符串

C#判断字符串是否为数字字符串 在进行C#编程时候,有的时候我们需要判断一个字符串是否是数字字符串,我们可以通过以下两种方法来实现。 【方法一】:使用try{} catch{}语句。 我们可以在try语句块中试图将string类型的字符串变量转换为int类型,如果该字符串不是数字字符串则会抛出异常,这时在catch语句块中就能捕获异常。一旦发现异常,则不是数字字符串。 我们可以以下三种方式将string类型转换为int类型。 (1)int.Parse(string); (2)Convert.ToInt16(string);//当数字字符串的位数大于4的时候请使用Convert.ToInt32() (3)Convert.ToInt32(string); 添加一个文本框TextBox1,和一个按钮Button1,当点击按钮时,判断文本框中的内容是否为数字字符串,是的话则输出转换后的数值。 protected void Button1_Click(object sender, EventArgs e) { string message = TextBox1.Text.Trim(); int result; if(isNumberic(message,out result)) { string tt=""; Page.ClientScript.RegisterStartupScript(this.GetType(), "", tt); } else

Page.ClientScript.RegisterStartupScript(this.GetType(), "", ""); } protected bool isNumberic(string message,out int result) { //判断是否为整数字符串 //是的话则将其转换为数字并将其设为out类型的输出值、返回true, 否则为false result = -1; //result 定义为out用来输出值 try { //当数字字符串的为是少于4时,以下三种都可以转换,任选一种 //如果位数超过4的话,请选用Convert.ToInt32() 和int.Parse() //result = int.Parse(message); //result = Convert.ToInt16(message); result = Convert.ToInt32(message); return true; } catch { return false; } }

如何提取Oracle库表记录中的中文字符

如何提取Oracle库表记录中的中文字符 今日头条没事儿唠唠IT 2016-12-01 00:17 在最近做的一个项目中,需要将数据库表中的中文字符提取出来,以供业务人员二次处理。网上搜索一番后,采用Oracle数据库的ASCII函数解决问题。主要思路整理如下: 由于中文字符的ASCII码范围为45217至63486之间,因此可以此为切入点对目标字符串进行判断截取。编写函数如下: create or replace function getCNStr(str varchar2) return varchar2 is tmpStr varchar2(100); --临时变量 currentStr varchar2(10); --当前待判断处理的字符 asciiCode number; --当前待怕短处理字符的Ascii码 counts number; --字符串中的字符个数 i_loop number := 1; --循环变量 resultStr varchar2(200); --返回的结果字符串 begin --取出待处理字符串的长度(counts) select length(str) into counts from dual; --根据待处理字符串长度(counts),逐个字符判断处理

while i_loop <= counts loop currentStr := substr(str, i_loop, 1); select ASCII(currentStr) into asciiCode from dual; if asciiCode >= 45217 then tmpStr := tmpStr || currentStr; end if; if asciiCode <= 45216 then --非连续的中文字符串之间以空格隔开 tmpStr := tmpStr || ' '; end if; i_loop := i_loop + 1; end loop; resultStr := tmpStr; return(resultStr); end getCNStr; 至此,函数编写完成,编译后测试如下图: 有图有真相(哈哈)

判断字符串是否是中文

判断字符串是否是中文 Unicode CJK 的范围分布在多个区段中,带有CJK 的区块名中都拥有汉字。但最常用的范围是U+4E00~U+9FA5,即名为:CJK Unified Ideographs 的区块,但U+9FA6~U+9FFF 之间的字符还属于空码,暂时还未定义,但不能保证以后不会被定义。 在正则表达式中使用[\u4e00-\u9fa5] 这种方式属于写死的代码,并不能根据平台所提供的字符集范围不同而改变,不过对于要求不是很高的话的是可以了。如果对字符集的要求很高,可以采用下面的这种Unicode 块的方式: String regex = "[\\p{InCJK Unified Ideographs}&&\\P{Cn}]]"; 在当前的JDK 版中与[\u4e00-\u9fa5] 的意义一致。但这样可以匹配Java 平台所支持Unicode 块名为CJK Unified Ideogrpahs 中已定义的字符,这种方式就属于“活”代码今后的JDK 版本升级了,定义到了\u9fa6 的字符,同样能够满足匹配。 public static void RecognizeChinese(String str) { int count = 0; String regex = "[\\p{InCJK Unified Ideographs}&&\\P{Cn}]]"; Pattern p = https://www.wendangku.net/doc/d09064132.html,pile(regEx); Matcher m = p.matcher(str); while (m.find()) { for (int i = 0; i <= m.groupCount(); i++) { count = count + 1; } } System.out.println("共有" + count + "个"); } 方法一: 在unicode 字符串中,中文的范围是在4E00..9FFF:CJK Unified Ideographs。 通过对字符的unicode编码进行判断来确定字符是否为中文。 protected bool IsChineseLetter(string input,int index) { int code = 0; int chfrom = Convert.ToInt32("4e00", 16); //范围(0x4e00~0x9fff)转换成int (chfrom~chend) int chend = Convert.ToInt32("9fff", 16); if (input != "") { code = Char.ConvertToUtf32(input, index); //获得字符串input中指定索引

中文字符集

最近一直被这个字符集问题,弄的头疼。想不到一个很好的办法去解决。问题是这样的:“在超链接中传递参数的时候总是出现乱码”在Action中用debug查的时候就是乱码,在Tomcat 中把Service.xml将字符集改成UTF-8,GBK,GB2312都试过了,仍然没有解决这个问题。很是郁闷!~~~ 在现实工作中我们会经常遇到字符转换的问题:有的时候还会出现乱码.因为工作需要我从别人的静态网页上抓取数据.用到的方法是传一个uri进去,然后取出你所想得到的字符串.代码如下: public static String getData(String url1) throws Exception { String result = ""; URL url = new URL(url1); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); PrintWriter out = new PrintWriter(connection.getOutputStream()); out.close(); BufferedReader in = new BufferedReader(new InputStreamReader(connection. getInputStream(),"UTF-8")); //特别注意这里,后面的编码格式,一般都是用UTF-8,因为这是通用的.如果用汉字可以用GBK.不要用gb2312.因为它是GBK的子集. String line; while ( (line = in.readLine()) != null) { result = result + "\n" + line; } in.close(); String html =replaceFunc2(replaceFunc2(result,""); return html; } public static String replaceFunc2(String str_source, String str_start,String str_end) { String info = "", rep_str = "", rep_str2 = ""; int startFlag = 0, endFlag = 0; startFlag = str_source.indexOf(str_start); endFlag = str_source.indexOf(str_end); info = str_source; if (startFlag >= 0 && endFlag >= 0 && startFlag < endFlag) { rep_str = info.substring(0, startFlag); rep_str2 = info.substring(endFlag + str_end.length()); info = rep_str + rep_str2; } // System.out.print("==========="+info+"=========="); return info; }

使用正则表达式判断如果电话输入了,则输入的电话号码必须为数字

/*使用正则表达式判断如果电话输入了,则输入的电话号码必须为数字*/ var con = document.getElementById('tel').value; var tel =/[^0-9]; var zip=document.getElementById('zip').value; https://www.wendangku.net/doc/d09064132.html,pile(/^[0-9]{6}$/); if(tel.test(con)){ document.getElementById('show5').innerText='输入的电话号码必须为数字'; return false; } if(!re.test(trim(zip))){ document.getElementById('show7').innerText='*邮编格式不正确'; return false; } */ 2. 只能是汉字: ﹤input onkeyup="value="/oblog/value.replace(/[^\u4E00-\u9FA5]/g,'')"﹥ 3.只能是英文: ﹤script language=java script ﹥function onlyEng(){if(!(event.keyCode﹥=65&&event.keyCode﹤=90))event.returnvalue=false;}﹤/ script ﹥﹤input onkeydown="onlyEng();"﹥

4. 只能是数字: ﹤script language=java script ﹥function onlyNum(){if(!((event.keyCode﹥=48&&event.keyCode﹤=57)||(event.keyCode﹥=96&&event.keyCode﹤=105)))//考虑小键盘上的数字键event.returnvalue=false;}﹤/ script ﹥﹤input onkeydown="onlyNum();"﹥ . 只能是英文字符和数字: ﹤input onkeyup="value="/oblog/value.replace(/[\W]/g,"'')"onbeforepaste="clipboardData.s etData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"﹥ 6. 验证邮箱格式: ﹤script LANGUAGE=java script RUNAT=Server﹥function isEmail(strEmail) {if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Z a-z0-9]+$/) != -1)return true;elsealert("oh");}﹤/ script ﹥﹤input type=text onblur=isEmail(this.value)﹥ ﹤script LANGUAGE=java script RUNAT=Server﹥function isEmail(strEmail) {if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Z a-z0-9]+$/) != -1)return true;elsealert("oh");}﹤/ script ﹥﹤input type=text onblur=isEmail(this.value)﹥ 7. 屏蔽关键字(这里屏蔽***和****): ﹤ script language="java script 1.2"﹥function test() {if((a.b.value.indexOf ("***") == 0)||(a.b.value.indexOf ("****") == 0)){alert(":)");a.b.focus();return false;}}﹤/ script ﹥﹤form name=a onsubmit="return test()"﹥﹤input type=text name=b﹥﹤

使用VBA判断单元格各字符是否为中文、英文、数字、符号的复杂代码

Function IsLike(strText As String, pattern As String) As Boolean IsLike = strText Like pattern End Function Function IsChinese(strText As String) As Boolean Dim i%, h$ h = Hex(Asc(strText)) If Asc(Left(h, 1)) >= 66 And Asc(Left(h, 1)) <= 70 Then IsChinese = True End If End Function Function StringType(strText As String, Optional outPutType As Integer = 1, Optional sumVar As Boolean = False) As Variant Dim strtemp As String, blnArray(1 To 5) As String, strPreType As Integer Dim intNum As Integer, startPos As Integer, intlen As Integer Dim strArray As Variant, strCompare1 As String, strCompare2 As String, dblSum As Double If sumVar = True And Not (outPutType <> 2 Or outPutType <> 4) Then sumVar = False For i = 1 To Len(strText) strtemp = Mid(strText, i, 1) If i > 1 Then strCompare1 = WorksheetFunction.Asc(Mid(strText, i - 1, 3)) strCompare2 = WorksheetFunction.Asc(Mid(strText, i, 2)) If WorksheetFunction.Dbcs(strtemp) = strtemp Then strtemp = WorksheetFunction.Asc(strtemp) If IsLike(strtemp, "[0-9]") Or IsLike(strCompare1, "[0-9].[0-9]") Or IsLike(strCompare2, "-[0-9]") Then If strPreType = 4 Then blnArray(4) = Left(blnArray(4), Len(blnArray(4)) - 1) & intNum Else intNum = 1 blnArray(4) = blnArray(4) & "- " & i & "/" & intNum End If strPreType = 4 intNum = intNum + 1 ElseIf IsLike(strtemp, "[a-zA-Z]") Then If strPreType = 5 Then blnArray(5) = Left(blnArray(5), Len(blnArray(5)) - 1) & intNum Else intNum = 1 blnArray(5) = blnArray(5) & "- " & i & "/" & intNum End If strPreType = 5 intNum = intNum + 1 ElseIf IsChinese(strtemp) Then If strPreType = 1 Then blnArray(1) = Left(blnArray(1), Len(blnArray(1)) - 1) & intNum

C# 判断中文字符的方法

方法一 在unicode字符串中,中文的范围是在4E00..9FFF:CJK Unified Ideographs。 通过对字符的unicode编码进行判断来确定字符是否为中文。 protected bool IsChineseLetter(string input,int index) { int code = 0; intchfrom = Convert.ToInt32("4e00", 16); //范围(0x4e00~0x9fff)转换成int(chfrom~chend) intchend = Convert.ToInt32("9fff", 16); if (input != "") { code = Char.ConvertToUtf32(input, index); //获得字符串input中指定索引index处字符unicode编码 if (code >= chfrom&& code <= chend) { return true; //当code在中文范围内返回true } else { return false ; //当code不在中文范围内返回false } } return false; } 方法二: public bool IsChina(string CString) { boolBoolValue = false; for (inti = 0; i

使用VBA判断单元格各字符是否为中文、英文、数字、符号的复杂代码

使用VBA判断单元格各字符是否为中文、英文、数字、符 号的复杂代码 Function IsLike(strText As String, pattern As String) As Boolean IsLike = strText Like pattern End Function Function IsChinese(strText As String) As Boolean Dim i%, h$ h = Hex(Asc(strText)) If Asc(Left(h, 1)) >= 66 And Asc(Left(h, 1)) <= 70 Then IsChinese = True End If End Function Function StringType(strText As String, Optional outPutType As Integer = 1, Optional sumVar As Boolean = False) As Variant Dim strtemp As String, blnArray(1 To 5) As String, strPreType As Integer Dim intNum As Integer, startPos As Integer, intlen As Integer Dim strArray As Variant, strCompare1 As String, strCompare2 As String, dblSum As Double If sumVar = True And Not (outPutType <> 2 Or outPutType <> 4) Then sumVar = False For i = 1 To Len(strText) strtemp = Mid(strText, i, 1) If i > 1 Then strCompare1 = WorksheetFunction.Asc(Mid(strText, i - 1, 3))

在mysql数据库中传入中文字符,并实现正常显示

在mysql中输入中文应做的正确操作 1.在安装mysql后要将C:\Program Files\MySQL\MySQL Server 5.5中的my.ini文件中的两个default-character-set的值设为default-character-set=gbk 2.在创建mysql数据库时要进行如下创建 GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 数据库中的语名如下 CREATE DATABASE `zhuce` /*!40100 DEFAULT CHARACTER SET gbk */; CREATE TABLE `tb_user` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(45) CHARACTER SET gbk DEFAULT NULL COMMENT '用户名', `password` varchar(45) CHARACTER SET gbk DEFAULT NULL COMMENT '密码', `sex` varchar(45) CHARACTER SET gbk DEFAULT NULL COMMENT '性别', `question` varchar(45) CHARACTER SET gbk DEFAULT NULL COMMENT '密码问题', `answer` varchar(45) CHARACTER SET gbk DEFAULT NULL COMMENT '密码答案', `email` varchar(45) CHARACTER SET gbk DEFAULT NULL COMMENT '邮箱', PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk; 2.创建字符编码servlet CharacterEncodingFilter package admin.jichupeizhi.zifu; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; /** * 字符编码过滤器 * @author Li Zhong Wei */ public class CharacterEncodingFilter implements Filter{ // 字符编码(初始化参数) protected String encoding = null; // FilterConfig对象

Java判断字符串是否包含中文以及包含的中文个数

本文由我司收集整编,推荐下载,如有疑问,请与我司联系 Java 判断字符串是否包含中文以及包含的中文个数2015/09/15 1260 import java.util.regex.Matcher;import java.util.regex.Pattern;public class PatternTest { public static void main(String[] args) { String str = “你好啊世界!hello world!/にほんご”;int chinaCount = 0; Pattern pattern = Patternpile(“[\u4e00-\u9fa5]”);int length = 0; if (str != null) { Matcher aMatcher = pattern.matcher(str); System.out.println(“是否有中文:”+ (aMatcher.find() ? “有”: “无”));char c[] = str.toCharArray(); length = c.length; for (int i = 0; i length; i++) { Matcher matcher = pattern.matcher(String.valueOf(c[i])); if (matcher.matches()) { chinaCount++; } } } System.out.println(“字符串总个数:” + length); System.out.println(“其中中文个数:”+ chinaCount); System.out.println(“非中文个数:”+ (length - chinaCount)); }}tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!

【个人总结系列-47】C C++编程注意问题总结-模板和泛型编程-结构体注意-中文字符读取-产生随机数

C/C++编程注意问题总结-模板和泛型编程-结构体注意-中文字符读 取-产生随机数 1.1.1 C++模板和泛型编程总结 ?函数模板:函数中有不确定的类型T(或成为模板类型) template T1 fun(T2 n) 函数模板在调用时自动根据参数的类型判断产生哪种类型的实例。所以程序员必须自己保证在函数中的类型T能够胜任所参与的运算。比如在函数fun()中有T类型的两个数据进行+运算,则程序员必须保证参数能够进行+运算。 ?类模板 类模板:类中有不确定的类型T(或成为模板类型) template class Person{} 类中函数在类外部的实现:必须在每个函数上面加一个template,以及在类后面用<>说明类中用到的模板类型T,如下所示: template Person::int getAge(){} 类模板在实例化时(声明和new一个类模板时),必须用<具体的T>注明类的类型。 凡是实例化一个类模板时(即用这种类时),必须要注明具体的类型。如: Person p; new的时候 Person p = new Person("Jim",20); 1.1.2 结构体需要注意的问题 ?结构指针 结构指针:struct string *student; 实际上, student->name就是(*student).name的缩写形式。 需要指出的是结构指针是指向结构的一个指针, 即结构中第一个成员的首地址,因此 在使用之前应该对结构指针初始化,即分配整个结构长度的字节空间, 这可用下面函数完成, 仍以上例来说明如下: student=(struct string*)malloc(sizeof (struct string)); 结构变量struct string student1,访问时https://www.wendangku.net/doc/d09064132.html,; 结构变量指针struct string *student2,访问时student2->name;或 (*student2).name ?结构体的创建和初始化 New与malloc一个结构体: Struct string *student=(struct string*)malloc(sizeof (struct string)); Struct string *student = new string;

如何汉化软件中的字符串

第一篇:关于ASCII字符串 一、ASCII字符串的定义和简介 ASCII字符串--在汉化界里,把在一个程序中不能使用资源方式来提取的,但是在运行时会显示出来的提示信息称为ASCII字符串(一般称为ASCII码)。在汉化软件过程中,ASCII字符串的汉化一直是最麻烦和最容易出错的地方,这是由于ASCII字符串一般都分布在程序中的代码段或数据段里,不属于资源部分,不能使用标准的资源提取工具提取出来。由于程序执行代码也在代码段里,并且字符串往往并不是集中固定在某一个地方,所以很难分辨是否为需要翻译的字符串。 ASCII字符串一般划分为C语言字符串和Pascal语言字符串: 1、C语言字符串指的是在字符串前后都有一个ASCII码为“00”的字符来与其它代码区分开来(图1): 如:00 69 73 6B 2E 00(disk)。C语言字符串主要出现在程序的数据段部分。一般用C语言编写的程序(注:典型的是用VC++来编写的程序)最多C语言字符串。由于C语字符串在数据段里往往会集中一处,所以查找起来比较方便。 2、Pascal语言字符串只有用Pascal语言来编写的程序才有(注:Delphi就是使用Object Pascal 语言)。是指字符串后面不但有至少一个ASCII值为“00”的字符分开,且在字符串第一个字符前三个字符都是00,在前第四个字符是该字符串的长度标识符,前第五、六、七,八个字符是ASCII码值为“FF”的字符,如:FF FF FF FF 02 00 00 00 C4 E3(图2)。 有这么多的特点,判断是否为ASCII字符串比起C语言字符串容易多了,不过由于Pascal 语字符串分布在整个代码段里,所以查找起来就比较难了。 二、汉化时遇到的问题 由于ASCII字符串在代码段或数据段中,所以汉化ASCII字符串有其的特殊性: 一、要保证程序的运行,就不能增加程序文件的大小,也就是不能直接增加ASCII字符串的长度,否则程序就会出错而不能正常运行。 二、难以判断是否为可翻译或需要翻译的字符串。 鉴于ASCII字符串的特殊性,所以目前汉化ASCII字符串时,绝大多数都是使用十六进制编辑器来手动修改,不但汉化需要的时间长,并且很容易出错,一个字--烦!

java实验六 字符串与正则表达式

实验六字符串与正则表达式 一.实验目的和要求 目的: 1、掌握字符串操作 2、掌握正则表达式的应用。 要求: 1、填充程序模板,并调试运行。 2、实验报告给出内容1的填充代码和内容2的所有源代码。 二.实验内容 1、按程序模板要求,将注释处替换为Java程序代码。 2、编写一个模式匹配函数,用于验证一串字符串是否符合email格式。三.实验环境 硬件: (1)学生用微机 (2)多媒体实验教室 软件: (1)Windows XP中文操作系统 (2)JDK1.7.0 四.算法描述及实验步骤 实验步骤: 1、填充程序模板 按模板要求,将【代码1】~【代码9】替换为Java程序代码。 StringExample.java class StringExample { public static void main(String args[ ]) { String s1=new String("you are a student"), s2=new String("how are you"); if (【代码1】) // 判断s1与s2是否相同 { System.out.println("s1与s2相同"); } else { System.out.println("s1与s2不相同"); } String s3=new String("22030219851022024"); if (【代码2】) // 判断s3的前缀是否是“220302”

{ System.out.println("吉林省的身份证"); } String s4=new String("你"), s5=new String("我"); if(【代码3】) // s4大于s5 { System.out.println("s4大于s5"); } else { System.out.println("s4小于s5"); } int position=0; String path="c:\\java\\jsp\\A.java"; position=【代码4】 // 获取path中最后出现目录分隔符号的位置 System.out.println("c:\\java\\jsp\\A.java中最后出现\\的位置:"+position); String fileName=【代码5】 // 获取path中“A.java”子字符串 System.out.println("c:\\java\\jsp\\A.java中含有的文件名:"+fileName); String s6=new String("100"), s7=new String("123.678"); int n1=【代码6】 // 将s6转化成int型数据 double n2=【代码7】 // 将s7转化成double型数据 double n=n1+n2; System.out.println(n); String s8=new String("ABCDEF"); char a[ ]=【代码8】 // 将s8存放到数组a中 for(int i=a.length-1;i>=0;i--) { 【代码9】// 打印 a[I] } } } 五.调试过程 根据实验要求将代码1-9填充完整后调试、运行得:

在c中判断字符串中是否包含日文和中文

在c#中判断字符串中是否包含日文和中文 from:https://www.wendangku.net/doc/d09064132.html,/blog/cns!88D6C32808C0 59C6!112.entry 代码: string s="中文にほんニホンABC"; foreach (char c in s) { if (c >= 0x4E00 && c<= 0x9FA5)MessageBox.Show(c+"是汉字"); else if(c>=0x3040&&c<=0x309F)MessageBox.S how(c+"是平假名"); else if(c>=0x30A0&&c<=0x30FF)MessageBox.S how(c+"是片假名"); } 相关问题: 1.0x4E00,0x9FA5这些值是怎么得到的?

https://www.wendangku.net/doc/d09064132.html,/esperantujo/unicode/这个网址能查到所有文字的unicode编码。 2.像“雑誌”这种日文中的汉字能否判断? 访问问题1中的网址可以发现4E00-9FA5这个区段被称为CJK Unified Ideographs。CJK是Chines, Japanese 和Korean的缩写。从名称就可以看出中文汉字和日文汉字是被放在一起编码的,所以用上面的代码判断“雑誌”也会得出汉字的结果。路过的高手有解决这个问题的办法请赐教。转两篇文章,看似和这个问题相关,看懂了也许会找到答案。 https://www.wendangku.net/doc/d09064132.html,/bbs/NewsDetail.asp?id=99129 日本语处理 https://www.wendangku.net/doc/d09064132.html,/Whisk/archive/2005/11/02/521119.asp x 判断全角日文文字的函数

UCS-2 UCS-4 中文字符编码 TTF字库之间的关系

字体和字符编码的关系 一、事件的起因 “回车键“?”这个标记怎么样才能显示在文本框内”一个哥们在群里问。我把这个符号复制到WORD里,然后按“ALT+X”看到了它的UNICODE码,然后告诉那哥们这个符号的Unicode码是0x21B5。顺手我把它复制到了我正打开的UE 文件里时,它居然变成了一个””,马上查看它的十六进制码也变成了0x3F。为什么会有这个变化我又把它复制到了WINDOWS的记事本里,记事本里却显示的好好的”?”。我想更清楚的看一下是不是这个符号,我点击字体,然后选择了“新宋体”,并设置了初号。结果更是另我大跌眼镜,居然变成了一个“”。为什么呢。心中似乎有答案,但又不能完全说明白。还好我有度娘,按着我心里的思路咱一路百度,最终我得到了我认为合理的解释,由于具体的是不是这么回事,我没验证过。所以大家仅供参考。再弄懂这些乱七八遭的事前,先复习了一下相关概念。 二、字符的编码 1.什么是字符集 字符(Character)是文字与符号的总称,包括文字、图形符号、数学符号等。“*“是一个字符“?”也是一个字符。 一组抽象字符的集合就是字符集(Charset)。字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集。一组有共同特征的字符也可以组成字符集,比如繁体汉字字符集、日文汉字字符集。字符集的子集也是字符集。 2.字符编码 计算机只能处理0和1,如果计算机要处理各种字符就需要将字符和二进制内码对应起来,这种对应关系就是字符编码(Encoding)。制定编码首先要确定字符集,并将字符集内的字符排序,然后和二进制数字对应起来。根据字符集内字符的多少,会确定用几个字节来编码。每种编码都限定了一个明确的字符集合,叫做被编码过的字符集(Coded Character Set),这是字符集的另外一个含义。通常所说的字符集大多是这个含义。说得通俗些就是0和1只能表示两个字符,为了表示人类使用的字符,就把它们编成一个个的二进制串,每个串表示一个字符。如果你是制度的创立者你完全可以规定,0000001就是”a”,而不用使

查找全部汉字及通配符的使用

Word查找全部汉字 2008-06-22 19:05 查找全部汉字 不包括标点符号:打开查找/替换/高级/勾选使用通配符,查找内容:“[一-﨩]”(如果是使用的是Unicode3.0 字符集的话,如果你使用的是Unicode 2.0 字符集,则为“[一-龥]”),你可以通过插入/符号/子集找一下下拉框中是否有“CJK 兼容字符”来判断你使用的是2.0 还是3. 0的,有的话你使用的就是Unicode 3.0 字符集;没有的就是Unicode 2.0 字符集。注意:插入/符号时,右下方的“来自”后必须选“Unicode( 十六进制)”,否则就算你使用的是Unicode 3. 0 字符集,也找到不“CJK 兼容字符”这一项。 包括标点符号:打开查找/替换/高级/勾选使用通配符,查找内容:“[!^1-^255] ”,这样就能全选所有的非西文符号(即汉字加上中文标点符号等)。 用汉字作为通配符(即使用汉字表达式替换):同样的道理,也可以用“[中-国]”这样的通配符来查找部分汉字(其实就是Unicode 码位于这两个字中间的汉字)。

在WORD中使用“通配符”查找功能 在WORD中使用“通配符”查找功能 2007/07/29 11:51 在DOS或Windows系统下查找文件,我们常常会用到通配符“* ”和“?”,这样通过模糊查找可非常方便地找到所需要的文件。其实在Word中的“查找”命令也有这样的功能,可以让你进行非常复杂的查询。单击“编辑”菜单中的“查找”或“替换”命令。在“查找内容”下应该看到“选项”的内容。如果看不到“使用通配符”项,单击“高级”按钮,将出现扩展高级对话框。再选中“使用通配符”复选框,即可开始我们的复杂查询(如图)。请注意,这时“区分大小写”和“全字匹配”复选框会变暗,表示这些选项已自动选中,你不能清除这些选项。所以选中“使用通配符”复选框后,Word将只查找与指定文本精确匹配的文本。在Word 的“查找”命令中,除了“*”和“?”两个通配符外,下面再列出Word中其他一些特殊的通配符。 任意单个字符“?”输入“?州”可以找到“苏州”、“杭州” 等。 任意字符串“*”输入“苏州* 公司”可以找到“苏州A P C 公司”、“苏州明基电脑公司” 等。 指定字符之一“[]”输入“[苏杭]州”就可以找到“杭州”、“苏州”。 指定范围内任意单个字符“[x-z]”(不适用中文)输入“[a-f]ay”可以找到“bay”、“cay”、“day”、“eay”、“fay”,范围必须用升序。 不包含指定范围以外的任意单字符“[!x-z]”(不适用中文)输入“[!c-f]ay”可以找到“bay”、“gay”和“lay”,但不会找到“cay”、“day”,范围必须用升序。 至少N个前一字符“{n}”输入“cho{1,}se”可找到“chose”和“choose” n到m个前一个字符“{n,m}”输入“73{2,4}”可找到“733”、“7333”和“73333”,但不会包括“73”。 一个以上的前一字符“@”输入“12@3”可找到“123”、“1223”和“12223” 单词开始字符串“<”输入“”输入“ch>”可找到“sketch”和“tech”,而不会找到“chat”。 另外,你还可以将这些通配符联合起来加以使用,实现更为复杂的查询功能。这时需要用括号将每一种查找括起来以表示查找处理的顺序。你可以通过输入“<(pre)*(ed)>”来查找所有以“pre”开头且以“ed”结尾的单词。 在Word中使用“通配符”功能时需要注意以下几点: 1.要查找已被定义为通配符的字符,那么需要在该字符前输入反斜杠(\),例如,要查找“?”或者“*”,可输入“\?”和“\*”。 2.如果使用了通配符,在查找文字时会大小写敏感。如果希望查找大写和小写字母的任意组合,那么请使用方括号通配符。例如输入“[Hh]*[Tt]”可找到“heat”、“Hat” 或“HAT”,而用“H*t”就找不到“heat”。 3.使用通配符时,Word只查找整个单词。例如,搜索“e*r ”可找到“enter”,但不会找到“entertain”。如果要查找单词的所有形式,需要使用适当的通配符字符。例如,输入“<(e*r)”可找到“enter”和“entertain”。 4.由于使用通配符时,Word无法识别在“查找内容”框中输入的以下项目的代码:尾注和脚注标记、域、段落标记、分节

相关文档
相关文档 最新文档