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

 我来答
断了的弦777
2009-09-23 · TA获得超过423个赞
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:252万
展开全部
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();//将字符串全部转化成小写
旅初彤2B
2016-12-12 · TA获得超过2.6万个赞
知道大有可为答主
回答量:4.4万
采纳率:65%
帮助的人:5353万
展开全部
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
+ "次!");
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杨伊凡050mRd
2013-12-19 · 超过51用户采纳过TA的回答
知道答主
回答量:107
采纳率:0%
帮助的人:94.3万
展开全部
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();//将字符串全部转化成小写
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千寻千昭
2016-07-07 · 超过23用户采纳过TA的回答
知道答主
回答量:50
采纳率:100%
帮助的人:28.4万
展开全部
	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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
weilongks
推荐于2018-02-26 · TA获得超过161个赞
知道小有建树答主
回答量:63
采纳率:0%
帮助的人:95.4万
展开全部
可以变像的计算下。
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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(12)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式