XML
即可扩展标记语言,一种文档结构
可以保存数据,传输数据,做属性文件。·处理XML的相关技术
·.定义XML数据结构的技术
·显示和打印XML数据的技术
·XML数据结构转换技术
应用程序对接收XML Processor传递来的XML树进行处理,向用户提供服务。
解决XML文档中具有相同名称的元素和属性命名的冲突问题。
可以为元素提供默认的URI,与相同URI关联的元素和属性属于同一个命名空间。
DTD是用来规范XML文件的格式,必须出现在头文件中,一遍XML校验器在一开始便可以得到XML文件的格式定义。DTD是一套关于标记符的语法规则,它定义了可用在文档中的元素、属性和实体,以及这些内容之间的关系。
DTD的基本结构
DTD语法格式如下:
<!DOCTYPE 根元素名称[
<!ELEMENT 子元素名称(#PCDATA)>
]>
参数说明:
<!DOCTYPE
:文档类型声明的起始定界符;根元素名称[
:一个XML文档只有一个根元素,如果XML文档使用DTD,那么根元素的名称就在这里指定;<!ELEMENT子元素名称(#PCDATA)>
:用来定义出现在文档中的元素;]>
:文档类型声明的结束界定符。
正则表达式
描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。
正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
一个例子
import java.util.Scanner;
public class Counts {
public static void main(String[] args) {
System.out.println("请输入一串字符:");
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
//sc.close();
count(str);
}
private static void count(String str) {
String s= "[\u4e00-\u9fa5]";
String s1="[a-zA-Z]";
String s2="[0-9]";
String s3="[\\s+]";
int ca=0;//汉字
int le=0;//字母
int num=0;//数字
int kg=0;//空格
int ot=0;//其它
char[] c = str.toCharArray();
String[] ss=new String[c.length];
for(int i=0;i<c.length;i++){
ss[i]=String.valueOf(c[i]);
}
for(String sss:ss){
if(sss.matches(s)){
ca++;
}else if(sss.matches(s1)){
le++;
}else if(sss.matches(s2)){
num++;
}else if(sss.matches(s3)){
kg++;
}else{
ot++;
}
}
System.out.println("汉字个数:"+ca);
System.out.println("字母个数:"+le);
System.out.println("数字个数:"+num);
System.out.println("空格个数:"+kg);
System.out.println("其他字符个数:"+ot);
}
}