XML和DTD,正則表示式
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);
}
}