java 怎样从一个string字符串中判断某个字母出现的次数

如题所述

str为你要测试的字符串

第一种方法:
byte[] temp = str.getBytes();//使用平台默认的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。
int count = 0;
//遍历数组的每一个元素,也就是字符串中的每一个字母
for(int i=0;i<temp.length; i++){
//如果字母等于c
if(temp[i].equals('c')){
//计数器加一
count ++;
}
}

第二种:

int count=0;
String str =""//你要测试的字符串
//index为字符串中第一次出现c的位置,如果字符串中没有c将返回-1
int index = str.indexOf("c");
//如果字符串中有c
while( str.indexOf("c")!=-1){
count++;
//将字符串出现c的位置之前的全部截取掉
str = str.subString(str.indexOf("c"));
}

考虑大小写: str = str.toLowerCase();//将字符串全部转化成小写
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-12-12
import java.util.Scanner;
public class test{
public static void main(String[] args) {
/*
判断是否是字母,将输入的字符串一个个取出,然后转换成char型,
然后再将char型强制转换成int型,这时候返回的是一个ASCII码,
ASCII码在97到122之间是小写字母,ASCII码在64到90之间是大写字母。
* */
int count = 0;
System.out.print("请输入一个字符串:");
String str = new Scanner(System.in).next();
//输入字符串后判断是不是含英文字母的字符串
for (int i = 0; i < str.length(); i++) {
if (((int) str.substring(i, i + 1).charAt(0) >= 97 && (int) str
.substring(i, i + 1).charAt(0) <= 122)
|| ((int) str.substring(i, i + 1).charAt(0) >= 64 && (int) str
.substring(i, i + 1).charAt(0) <= 90)) {
count++;
}
}
while (1 == 1) {
//当count大于等于1的时候说明这个字符串中,含有字母
if (count>=1) {
break;
}else{
//如果不是含字母的字符串,就继续循环,直到输入含字母的字符串
System.out.println("你输入的不是含字母的字符串!");
System.out.println(" ");
System.out.print("请输入一个字符串:");
str = new Scanner(System.in).next();
for (int i = 0; i < str.length(); i++) {
if (((int) str.substring(i, i + 1).charAt(0) >= 97 && (int) str
.substring(i, i + 1).charAt(0) <= 122)
|| ((int) str.substring(i, i + 1).charAt(0) >= 64 && (int) str
.substring(i, i + 1).charAt(0) <= 90)) {
count++;
}
}
}
}
//后面还要使用count统计,所以此处要将count清零
count = 0;
System.out.print("请输入你要查找的字母:");
String scanf = new Scanner(System.in).next();
//输入要查找的字符串后判断是不是只有一个字母,或者是不是一个字母
while (1 == 1) {
if ((((int) scanf.charAt(0) >= 97 && (int) scanf.charAt(0) <= 122) || ((int) scanf
.charAt(0) >= 64 && scanf.charAt(0) <= 90))
&& (scanf.length() == 1)) {
break;
} else {
System.out.println("你输入的不是一个英文字母!");
System.out.println(" ");
System.out.print("请输入一个你要查找的字母:");
scanf = new Scanner(System.in).next();
}
}
//统计字母在那个字符串中出现的次数
for (int i = 0; i < str.length(); i++) {
if (str.substring(i, i + 1).equals(scanf)) {
count++;
}
}
if (count == 0) {
System.out.println("字母" + scanf + "不存在字符串:" + str + "中!");
} else {
System.out.println("字母" + scanf + "在字符串:" + str + "中出现了" + count
+ "次!");
}
}
}
第2个回答  2013-12-19
str为你要测试的字符串
第一种方法:
byte[] temp = str.getBytes();//使用平台默认的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。
int count = 0;
//遍历数组的每一个元素,也就是字符串中的每一个字母
for(int i=0;i<temp.length; i++){
//如果字母等于c
if(temp[i].equals('c')){
//计数器加一count ++;}}第二种:int count=0;
String str =""//你要测试的字符串
//index为字符串中第一次出现c的位置,如果字符串中没有c将返回-1
int index = str.indexOf("c");
//如果字符串中有c
while( str.indexOf("c")!=-1){count++;//将字符串出现c的位置之前的全部截取掉
str = str.subString(str.indexOf("c"));}考虑大小写:
str = str.toLowerCase();//将字符串全部转化成小写
第3个回答  2016-07-07
public static void main(String[] args) {
int total=0;
String aString="baaaaaa";
//切割字符串,一个字母。
String aString2[]=aString.split("");
for (int i = 0; i < aString2.length; i++) {
if ("a".equals(aString2[i])) {
System.out.println("出现的位置:"+(i));
total++;
}
}
System.out.println("出现的次数"+total);
}

第4个回答  推荐于2018-02-26
可以变像的计算下。
public class Test
{
public static void main (String[]args)
{
String str = "1a2a3a14a";
int aLength = str.length() - str.replace("a", "").length();
System.out.println("a出现的次数:"+aLength);

}
}
运行结果:
a出现的次数:4本回答被网友采纳
相似回答