1.判断QString是否为纯数字
bool IsDigitString(QString strSource) { bool bDigit = false; if (strSource.isEmpty()) { return bDigit; } QByteArray strByteArray = strSource.toLatin1(); const char *chString = strByteArray.data(); while (*chString && *chString>='0' && *chString<='9') chString++; if (*chString) { bDigit = false; } else { bDigit = true; } return bDigit; }
2.查找自身最长重复子字符串
QString MaxSubString(QString inputString) { QString subString = ""; int strLen = inputString.size(); if (strLen <= 0) { return subString; } int maxSubStrLen = 0; int tempLen = 0; int subIndex = 0; int i = 0; int j = 0; int k = 0; while (i < strLen) { j = i+1; while(j < strLen) { if (inputString.at(i) == inputString.at(j)) { tempLen = 1; for (k=1; j+k<strLen && inputString.at(i+k)==inputString.at(j+k); k++) { tempLen++; } if (tempLen > maxSubStrLen) { subIndex = i; maxSubStrLen = tempLen; } j += tempLen; } else { j++; } } i++; } for (i=0; i<maxSubStrLen; i++) { subString.append(inputString.at(subIndex+i)); } return subString; }
https://www.cnblogs.com/sz-leez/p/6537004.html