JAVA学习笔记(8)
問(wèn)題1:
錯(cuò)誤示例:
i:Syntax error on token i;delete this token
splited[1]: type mismatch
//String splited[]定義是這樣的解答:
這樣:String[] newPath = new String[1];newPath賦值是這樣賦值:newPath[0] = splited[1];
注意:數(shù)組下標(biāo)從0開(kāi)始。newPath[0]表示該數(shù)組的第一個(gè)元素。
問(wèn)題2:
String splited[] = null;while((line=rd.readLine())!=null)//readLine 讀取一個(gè)文本行
{
splited[] =line.split("->");//分割字符串
String splited1[] = splited[0].split("-");
List<String[]> oldPath = new ArrayList<String[]>();
oldPath.add(splited1);
List<String> newPath = new ArrayList<String>();
newPath.add(splited[1]);
}
為什么splited[] =line.split("->");//分割字符串這行會(huì)報(bào)錯(cuò)
如果在while里面定義String splited[]=line.split("->");就沒(méi)有問(wèn)題。
但是我現(xiàn)在想在外面使用這個(gè)參數(shù),怎么辦
答:
代碼寫(xiě)的有問(wèn)題,splited[] =line.split("->");//分割字符串應(yīng)該是:splited=line.split(“->”);
問(wèn)題3:
我寫(xiě)的代碼:輸入進(jìn)去之后,每次循環(huán)找到一個(gè)子串,就記錄長(zhǎng)度和位置,然后把這個(gè)記錄長(zhǎng)度和位置的數(shù)組存到一個(gè)list中。但是為什么當(dāng)我找到第二個(gè),第三個(gè)子串以后,list里面存的數(shù)組的內(nèi)容都變成一樣的了?
int a[] = new int[2];//記錄子串的長(zhǎng)度和位置
List<int[]> comp = new ArrayList<int[]>();
for(int i = 0; i<oldPath.size(); i++)//找到所有匹配子串
{
String str = oldPath.get(i);
if(oldp.contains(str))
{
a[0] = i;//所處的位置
a[1] = str.length();//子串的長(zhǎng)度
comp.add(a);
}
答:
List<int[]> comp = new ArrayList<int[]>();for(int i = 0; i<oldPath.size(); i++)//找到所有匹配子串
{
String str = oldPath.get(i);
if(oldp.contains(str))
{
int a[] = new int[2];//記錄子串的長(zhǎng)度和位置 a[0] = i;//所處的位置
a[1] = str.length();//子串的長(zhǎng)度
comp.add(a);
}
數(shù)組是引用對(duì)象,你添加的時(shí)候重新new一個(gè)數(shù)組,不然始終是同一個(gè)對(duì)象。
數(shù)組是引用傳遞,你的a數(shù)組,是引用傳遞,所以總是最后一個(gè)數(shù)值的記錄,后面覆蓋前面,除非你在循環(huán)里面重新
? ? ? ?new a數(shù)組
問(wèn)題4:
javalist1,list2都是string類(lèi)型
例如list1[1] == news
list1[2] == newssport
list1[3] == newssportfootball
list2[1] == xinwen
list2[] == tiyuxinwen
里面分別存儲(chǔ)了一些字符串
現(xiàn)有一個(gè)輸入字符串(要么list中的全都不是它的字串,要么list中的一個(gè)是最佳匹配子串),先與list1里面的進(jìn)行匹配,找到最適合的一項(xiàng),然后把這一段用list2中對(duì)應(yīng)的內(nèi)容替換掉,輸出新的字符串。
答:
List<String> oldPath = result.get(0);
?List<String> newPath = result.get(1);
?String tempath = oldp;
?int temp0 = -1;
?int temp1 = 0;
?//int a[] = new int[2];//記錄子串的長(zhǎng)度和位置
?List<int[]> comp = new ArrayList<int[]>();
?for(int i = 0; i<oldPath.size(); i++)//找到所有匹配子串
?{
?String str = oldPath.get(i);
?if(oldp.contains(str))//檢測(cè)是否存在子串
?{
?int a[] = new int[2];
?a[0] = i;//所處的位置
?a[1] = str.length();//子串的長(zhǎng)度
?comp.add(a);
?}
?else continue;
?}
?if(comp != null)
?{
?temp0 = comp.get(0)[0];
?temp1 = comp.get(0)[1];
?for(int i = 1; i<comp.size(); i++)//找到最匹配的子串
?{
?if(temp1 > comp.get(i)[1])
?{
?}
?else
?{
?temp0 = comp.get(i)[0];
?temp1 = comp.get(i)[1];
?}
?}
?tempath = tempath.replace(oldPath.get(temp0),newPath.get(temp0));
轉(zhuǎn)載于:https://blog.51cto.com/gomic/1378559
總結(jié)
以上是生活随笔為你收集整理的JAVA学习笔记(8)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 破解sina新浪邮箱密码
- 下一篇: 面试之 listview优化