① 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]);
}
}