在做項目中不可避免的會使用到一串字符串中的一段字符,因此常常需要截取字符串。
有兩種方式可以解決這個問題:
方法一:QString分割字符串:
QString date=dateEdit.toString("yyyy/MM/dd"); QStringList list = date.split("/");//QString字符串分割函數
方法二:正則表達式分割字符串:
1、Orcale數據庫:
1 Data='12345|耗子|男'
2 select regexp_substr (Data, '[^|]+', 1,1) into 用戶ID from hdata; 3 select regexp_substr (Data, '[^|]+', 1,2) into 用戶姓名 from hdata; 4
5 select regexp_substr (Data, '[^|]+', 1,3) into 性別 from hdata;
2、
String s = "ab\ncd\nef\\ngh"; String[] v = s.split("[\n]|([\\\\]n)");
方法三:(字符串截取:QString與std::string均有現成的處理函數)
1.
QString QString::mid(int position, int n = -1) const
參數:
position:指定截取字符串的起始位置(postion超出字符串長度時,返回null字符 )
n:指定截取字符串長度(自postion開始的可用字符串小於n,or n== -1,返回自position開始的全部字符串)
2.
1 std::basic_string::substr(size_type __pos, size_type __n) const
2 basic_string substr(size_type pos = 0, size_type count = npos);
功能:返回子字符串[pos, pos+cout];
當請求的substring超出字符串末尾or count == npos,返回的substring 為[pos, size()]