需排序字段 如:xx八十一局, xx十二局, xx三十四局, xx四局, xx五局, xx一百零六局, xx七局
期望排序結果:xx四局, xx五局, xx七局, xx十二局, xx三十四局, xx八十一局, xx一百零六局
思路:擷取 各個字串的中文數字部分,然後將其轉換為阿拉伯數字後進行比較。
擷取中文字串 方法:
將中文數字轉換為 阿拉伯數字,這裡用的是 tuzi294 的這篇文章的**,略做修改。/**
* 擷取第一處的中文數字字串
* @param str
* @return
*/private static string getnumberstr(string str)
} else }}
return stringbuilder.tostring();
}
呼叫方法/**
* 將中文數字轉換為 阿拉伯數字
* @author tuzi294
* @param chinesenumber 中文數字字串
* @return 轉換後的阿拉伯數字
*/public static long chinesenumber2int(string chinesenumber) ;
long num = 0;
char arr = chinesenumber.tochararray();
int len = arr.length;
stackstack = new stack();
for (int i = 0; i < len; i++) else
//如果棧中有比val小的元素則出棧,累加,乘n,再入棧
while (!stack.isempty() && stack.peek() < val)
//判斷是否經過乘法處理
if (tempsum == 0) else }}
//計算最終的和
while (!stack.isempty())
return num;
}
public static void main(string args) );
system.out.println(data);
}
iOS 中文數字排序
之前做通訊錄聯絡人的時候用到bmchinesesort,能分割成兩個陣列,乙個是英文本的,乙個是英文本母下的所有物件陣列 但是它對數字並不起作用,並沒有從小到大排序,現在專案,我並不需要英文本母下的陣列,增加數字排序 從小到大 解決方案如下 按拼音排序 nsinteger carnamesort i...
SqlServer按中文數字排序
表資料 按名稱排序 並不能得到一二三四五六的順序 找到中文數字在 一二三四五六七 十 的位置 select id,name,substring name,2,1 as 中文數字,charindex substring name,2,1 一二三四五六七 十 as 中文數字所在位置 from liwei...
Oracle中文 數字混雜欄位的排序
對oracle中中文 數字混雜形式的字段進行排序的方法 例如 order by nlssort 欄位名,nls sort schinese pinyin m to number translate 欄位名,0123456789 欄位名,0123456789 nlssort 函式 如果資料庫字符集選用...