① java判斷數組中相同字元串的個數
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class GetNum {
public static void main(String[] args) {
int a[]={2007,2008,2006,2004,1984,2007,2006,2006};
List<Num> list=new ArrayList<Num>();
for(int i=0;i<a.length;i++){
if(!isExist(a[i],list)){
Num n=new Num();
n.num=a[i];
n.n=1;
list.add(n);
}
}
for(Iterator<Num> it=list.iterator();it.hasNext();){
Num nu=it.next();
System.out.println(nu.num+":"+nu.n);
}
}
public static boolean isExist(int num,List<Num> list){
boolean b=false;
for(Iterator<Num> it=list.iterator();it.hasNext();){
Num nu=it.next();
if((nu.num==num)){
nu.n++;
b=true;
break;
}
}
return b;
}
}
class Num{
public int num;
public int n;
}
都說了是整形數組了..還用字元串進行比較呀!!!
呵呵...
祝樓主早日成功哈!!!!
② java對同一個字元串重復使用getBytes()得到的byte,為什麼每一次都不同! 這是對123d的處理結果!
你輸出的是byte對象的內存地址。
getBytes()得到的是一個byte的數組對吧。你要看得到的byte應該遍歷列印這個byte數組里的元素,而不是直接列印byte對象。
String str = "123d";
byte[] by = str.getBytes();
for(int i=0;i<by.length;i++) {
System.out.println(by[i]);
}
③ Java判斷字元串數組中是否有相同的字元
使用一個二重 循環, 依次比較第二個字元串數組的元素, 是否在第一個字元串數組中出現過。 字元串比較用 equals()方法,不要使用==
④ java去掉數組里的重復的數據
計數方法,你在遍歷數組外邊int 一個數=0,如果某個數和數組【i】相等,就++
刪除方法我用的是笨方法,因為數組不能直接增刪操作,要先算出新數組的長度,在遍歷出去,我是取巧了先排序了,當然你也可以用其他排序方法排序
public static void main(String[] args) {
int [] arr={1,2,2,3,4,5};
int len=arr.length;
Arrays.sort(arr);
int leng=0;
for( int i=0;i<arr.length-1;i++){
if(arr[i]!=arr[i+1]){
leng++;
}
}
if(arr[arr.length-2]!=arr[arr.length-1]){
leng++;
}
System.out.println(leng);
int newlength=0;
int []newArr=new int[leng];
for( int i=0;i<arr.length-1;i++){
if(arr[i]!=arr[i+1]){
newArr[newlength]=arr[i];
newlength++;
}
}
if(arr[arr.length-2]!=arr[arr.length-1]){
newArr[newlength]=arr[arr.length-1];
}
for(int i=0;i<newArr.length;i++){
System.out.println(newArr[i]);
}
}