工參考
/**
* @description:2-n元分詞方法,具體規則如下:
去除字串頭尾的空格和標點符號
把連續相同字元(相鄰單字)合併為唯一字元(不合併純數字字串和英文),
根據字串中間的標點符號進行分斷處理,形成多個片段(只保留長度大於1的分斷字串,也就是說最小單位是二元)
過濾掉重複的詞彙
*/public class ndivideutil
}else
}} return resultlist.toarray(new string[0]); }
/*** 根據標點符號,將一句話分成多個語義
*/private static void splitbypunctuation(string str,listlist)
flag=true;
break;
}} if (!flag&&str!=null&&str.length()!=0) }
/*** 根據英文單詞和數字,進一步分成多個語義
*/public static string splitbywordanddigit(string str)
int len=str.length();
boolean isenglishstr=false;
boolean isdigitstr=false;
boolean ischinesestr=false;
stringbuilder sb=new stringbuilder();//英文單詞
stringbuilder sbdigit=new stringbuilder();//數字
stringbuilder sbchinese=new stringbuilder();//中文
for (int i = 0; i <=len-1; i++)
if (isdigitstr)
isdigitstr=false;
if (ischinesestr)
ischinesestr=false;
}else if (isdigit(ch))
if (isenglishstr)
isenglishstr=false;
if (ischinesestr)
ischinesestr=false;
}else if (ischinese(ch))
if (isenglishstr)
isenglishstr=false;
if (isdigitstr)
isdigitstr=false;
}} return list.toarray(new string[0]); }
/*** 去除重複的中文
*/private static string castduplicatechinese(string string)
tmpchar=ch;
} return sb.tostring(); }
//判斷是否為英文本元
private static boolean isenglish(char ch) }
//判斷是否為漢字
private static boolean ischinese(char ch) }
//判斷是否為數字
private static boolean isdigit(char ch) }
//判斷是否為標點符號
private static boolean ispunctuation(char ch) }
public static string ndivide(string str)
int len=str.length();
for (int i = 2; i <=len; i++)
} return list.toarray(new string[0]);
}}
《每日一題》將一句話的單詞進行倒置
將一句話的單詞進行倒置,標點不倒置。比如 i like beijing.經過函式後變為 beijing.like i 每個測試輸入包含1個測試用例 i like beijing.輸入用例 長度不超過100 輸出描述 依次輸出倒置之後的字串,以空格分割 i like beijing.beijing.l...
一句話,全國方言N種說法,挺有意思。
一句話,全國方言n種說法,挺有意思。北京話 今兒爺就站這兒了,你丫動我一試試。別看你丫個兒不小,逼急了老子拿板磚hai 一聲 你丫挺的!天津話 近兒我揍贊借害兒了,你動我一四四,甭看泥葛大,必急了我自接那鑽頭拍泥腦袋!山東話 今日老子窩就站遮泥,泥趕招呼窩時時,甭看泥掌地鎬,惹毛撩窩拿塊半頭專橫你頭...
將一句話裡的單詞進行倒置,標點符號不倒換。
比如 一句話 i love you.轉換後為 you.love i include include includeusing namespace std int main while p 0 pt 在pt中增加乙個空格。flag p中連續空格數 1 p 0 將該空格置為 0 以便作為下一次將字母複製...