問題出在while循環(huán)的判斷順序有誤,應(yīng)先判斷下標(biāo)的范圍,再比較數(shù)值

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),樂都企業(yè)網(wǎng)站建設(shè),樂都品牌網(wǎng)站建設(shè),網(wǎng)站定制,樂都網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,樂都網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
修改后的代碼為:
while (((i + icount) s.length())
((j + icount) p.length())
(s.charAt(i + icount) == p.charAt(j + icount))) {
icount++;
}
package d;
public class Test {
public static void method(String str){
String ss=str.toUpperCase();
char arr[]=ss.toCharArray();
int sum=0;
StringBuffer sb=new StringBuffer();
sb.append("[");
for(char c:arr){
int num=c-'A'+1;
sb.append(num+"+");
sum=sum+num;
}
String s=sb.toString().substring(0, sb.toString().length()-1)+"]";
if(sum==100){
System.out.println(str+"="+s+"="+sum+"%");
System.out.println("["+str+"]"+"決定一切");
}else{
System.out.println(str+"="+s+"="+sum+"%");
}
}
public static void main (String args[]){
method("attitude");
}
}
String text1 = "我愛學(xué)習(xí)";
String text2 = "我愛讀書";
String text3 = "他是黑客";
TextSimilarity textSimilarity = new CosineTextSimilarity();
double score1pk1 = textSimilarity.similarScore(text1, text1);
double score1pk2 = textSimilarity.similarScore(text1, text2);
double score1pk3 = textSimilarity.similarScore(text1, text3);
double score2pk2 = textSimilarity.similarScore(text2, text2);
double score2pk3 = textSimilarity.similarScore(text2, text3);
double score3pk3 = textSimilarity.similarScore(text3, text3);
System.out.println(text1+" 和 "+text1+" 的相似度分值:"+score1pk1);
System.out.println(text1+" 和 "+text2+" 的相似度分值:"+score1pk2);
System.out.println(text1+" 和 "+text3+" 的相似度分值:"+score1pk3);
System.out.println(text2+" 和 "+text2+" 的相似度分值:"+score2pk2);
System.out.println(text2+" 和 "+text3+" 的相似度分值:"+score2pk3);
System.out.println(text3+" 和 "+text3+" 的相似度分值:"+score3pk3);
運(yùn)行結(jié)果如下:
我愛學(xué)習(xí) 和 我愛學(xué)習(xí) 的相似度分值:1.0
我愛學(xué)習(xí) 和 我愛讀書 的相似度分值:0.4
我愛學(xué)習(xí) 和 他是黑客 的相似度分值:0.0
我愛讀書 和 我愛讀書 的相似度分值:1.0
我愛讀書 和 他是黑客 的相似度分值:0.0
他是黑客 和 他是黑客 的相似度分值:1.0
方式二:簡單共有詞,通過計算兩篇文檔有多少個相同的詞來評估他們的相似度
實(shí)現(xiàn)類:org.apdplat.word.analysis.SimpleTextSimilarity
用法如下:
String text1 = "我愛學(xué)習(xí)";
String text2 = "我愛讀書";
String text3 = "他是黑客";
TextSimilarity textSimilarity = new SimpleTextSimilarity();
double score1pk1 = textSimilarity.similarScore(text1, text1);
double score1pk2 = textSimilarity.similarScore(text1, text2);
double score1pk3 = textSimilarity.similarScore(text1, text3);
double score2pk2 = textSimilarity.similarScore(text2, text2);
double score2pk3 = textSimilarity.similarScore(text2, text3);
double score3pk3 = textSimilarity.similarScore(text3, text3);
System.out.println(text1+" 和 "+text1+" 的相似度分值:"+score1pk1);
System.out.println(text1+" 和 "+text2+" 的相似度分值:"+score1pk2);
System.out.println(text1+" 和 "+text3+" 的相似度分值:"+score1pk3);
System.out.println(text2+" 和 "+text2+" 的相似度分值:"+score2pk2);
System.out.println(text2+" 和 "+text3+" 的相似度分值:"+score2pk3);
System.out.println(text3+" 和 "+text3+" 的相似度分值:"+score3pk3);
運(yùn)行結(jié)果如下:
我愛學(xué)習(xí) 和 我愛學(xué)習(xí) 的相似度分值:1.0
我愛學(xué)習(xí) 和 我愛讀書 的相似度分值:0.5
我愛學(xué)習(xí) 和 他是黑客 的相似度分值:0.0
我愛讀書 和 我愛讀書 的相似度分值:1.0
我愛讀書 和 他是黑客 的相似度分值:0.0
他是黑客 和 他是黑客 的相似度分值:1.0
給你看看我的思路:把兩句話存在兩個String里,然后用一個int記String長度,一個int記相同字的個數(shù),最后把兩個int一除就出來了。
當(dāng)然這個是最簡單的,只能算相同長度的兩句話。
網(wǎng)頁題目:java相似度比較代碼 java字符串相似度算法工具包
網(wǎng)址分享:http://chinadenli.net/article42/ddgsghc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、品牌網(wǎng)站設(shè)計、微信公眾號、營銷型網(wǎng)站建設(shè)、網(wǎng)站排名、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)