黑马程序员技术交流社区
标题:
取出一个字符串中字母出现的次数
[打印本页]
作者:
upx
时间:
2015-11-10 18:45
标题:
取出一个字符串中字母出现的次数
取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,
* 输出格式为:a(2)b(1)k(2)...
作者:
小地瓜
时间:
2015-11-10 18:45
public class Text01 {
/*
* 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,
* 输出格式为:a(2)b(1)k(2)...
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = new String("abcdekka27qoq"); //自定义的一个字符串
char[] ch1 = str.toCharArray(); //将字符串转变为字符串数组,为了方便后续进行比对
sum(ch1); //将ch1放进方法sum当中;求出现的个数
}
public static void sum(char[] arr){
String array =new String(); //定义一个null 的字符串,为了存ch1中不重复的元素
for (int i = 0; i < arr.length; i++) {
if ((array.indexOf(arr[i]) < 0) ) { //比对字符串array中ch1【i】的索引值,若返回-1,则字符串中没有对应的字符,则将该字符添加到字符串的最后面
array = array + arr[i];
}
}
char[] ch2 = array.toCharArray(); //将array字符串变为字符串数组,用来比ch2中每个元素在ch1中出现的次数。
for (int i = 0; i < ch2.length; i++) { //遍历之前array转为ch2的字符串数组
int x = 0;
for (int j = 0; j < arr.length; j++) { //遍历之前str转为ch1的字符串数组
if (ch2[i] == arr[j]) { //比对ch2中每一个元素在ch1中出现的次数,若相等,则数字加1.
x++;
}
}
System.out.print(ch2[i]+"("+x+")"); //打印ch2中元素在ch1中出现的次数,则就是ch1中元素在ch1中出现的次数。
}
}
}
复制代码
作者:
小地瓜
时间:
2015-11-10 18:49
可以看一下,目前我还只学到string,所以后面的大神的方法还不清楚,但是我就是用的string to char【】,然后通过char[] arr转回到string字符串中,每加一个字符的索引,若索引为负数,这这个字符串中还没有改字符,这样再用去重的字符串转字符数组,用这个字符数组的元素比对之前最原始的字符串所转的字符数组,有点绕,可以看看代码。上午才做的。应该可以帮到你。
public class Text01 {
/*
* 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,
* 输出格式为:a(2)b(1)k(2)...
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = new String("abcdekka27qoq"); //自定义的一个字符串
char[] ch1 = str.toCharArray(); //将字符串转变为字符串数组,为了方便后续进行比对
sum(ch1); //将ch1放进方法sum当中;求出现的个数
}
public static void sum(char[] arr){
String array =new String(); //定义一个null 的字符串,为了存ch1中不重复的元素
for (int i = 0; i < arr.length; i++) {
if ((array.indexOf(arr[i]) < 0) ) { //比对字符串array中ch1【i】的索引值,若返回-1,则字符串中没有对应的字符,则将该字符添加到字符串的最后面
array = array + arr[i];
}
}
char[] ch2 = array.toCharArray(); //将array字符串变为字符串数组,用来比ch2中每个元素在ch1中出现的次数。
for (int i = 0; i < ch2.length; i++) { //遍历之前array转为ch2的字符串数组
int x = 0;
for (int j = 0; j < arr.length; j++) { //遍历之前str转为ch1的字符串数组
if (ch2[i] == arr[j]) { //比对ch2中每一个元素在ch1中出现的次数,若相等,则数字加1.
x++;
}
}
System.out.print(ch2[i]+"("+x+")"); //打印ch2中元素在ch1中出现的次数,则就是ch1中元素在ch1中出现的次数。
}
}
}
作者:
sabrina妖儿
时间:
2015-11-10 19:36
学习一下
作者:
何娟娟
时间:
2015-11-13 22:52
厉害啊!!
作者:
zhauibuzhai
时间:
2015-11-15 23:25
public class Demo_2 {
/**
* 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,
* 输出格式为:a(2)b(1)k(2)...
*/
public static void main(String[] args) {
String s="abcdekka27qoq"; //
int numa=0;
int numb=0;
int numk=0;
for (int i = 0; i < s.length(); i++) {
char c=s.charAt(i);
if(c=='a'){
numa++;
}else if(c=='b'){
numb++;
}else if (c=='k'){
numk++;
}else{
}
}
System.out.println("a("+numa+")b("+numb+")k("+numk+").......");
}
}
作者:
袁有福123
时间:
2015-11-20 23:33
过来学习一下!
作者:
1191065242
时间:
2016-5-1 18:37
/*取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,
* 输出格式为:a(2)b(1)k(2)...*/
String str = "abcdekka27qoq";
char[] ch1 = str.toCharArray();
for (int i = 0; i < ch1.length - 1; i++) {
for (int j = i + 1; j < ch1.length; j++) {
if(ch1[i] > ch1[j]){
int temp = ch1[i];
ch1[i] = ch1[j];
ch1[j] = (char) temp;
}
}
}
System.out.println(Arrays.toString(ch1));
for (int i = 0; i < ch1.length; ) {
int count = 0;
for (int j = i + 1; j < ch1.length; j++) {
if(ch1[i] == ch1[j]) {
count++;
}
}
System.out.print(ch1[i]+"("+(count + 1)+")");
i = i + count;
i++;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2