编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。
import java.util.Scanner;
public class P8 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
while(in.hasNext()){
String s=in.next();
int[] array=new int[128];
int c=0;
for(int i=0;i<s.length();i++){
char a=s.charAt(i);
array[a]++;
if(a >= 0 &&a <= 127&&array[a]==1){
c++;
}
}
System.out.print(c);
}
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
while(in.hasNext()){
String s=in.next();
int[] array=new int[128];
int c=0;
for(int i=0;i<s.length();i++){
char a=s.charAt(i);
array[a]++;
if(a >= 0 &&a <= 127&&array[a]==1){
c++;
}
}
System.out.print(c);
}
}
}
另一种方法:用hashset
import java.util.Scanner;
import java.util.HashSet;
public class p7 {
import java.util.HashSet;
public class p7 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
while(in.hasNext()){
String s=in.next();
char ch[]=s.toCharArray();
HashSet<Character> set=new HashSet<Character>();
for(int i=0;i<ch.length;i++){
set.add(ch[i]) ;
}
System.out.println(set.size());
}
}
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
while(in.hasNext()){
String s=in.next();
char ch[]=s.toCharArray();
HashSet<Character> set=new HashSet<Character>();
for(int i=0;i<ch.length;i++){
set.add(ch[i]) ;
}
System.out.println(set.size());
}
}
HashSet和HashMap的区别
*HashMap* | |
HashMap实现了Map接口 | |
HashMap储存键值对 | |
使用put()方法将元素放入map中 | |
HashMap中使用键对象来计算hashcode值 | |
HashMap比较快,因为是使用唯一的键来获取对象 | |