Итак, мне нужно написать программу с использованием циклов, которая берет строку и подсчитывает, что и сколько букв появляется в этой строке. (строка «лучшее масло» будет печатать «b появляется 2 раза, e появляется 3 раза,« (пробел) появляется 1 раз и т. д.). Хотя я понимаю идею и концепцию, лежащую в основе этого задания, грубый.Возникли проблемы с циклами
Мой вложенные для цикла, где проблемы идут от, я полагаю. то, что я написал только петли один раз (я думаю), и просто показывает первый символ и говорит, что есть только один из этого символа.
Редактировать: Не рекомендуется использовать карту или массивы. Я в порядке с их использованием, если это единственный способ, но они не были охвачены в моем классе, поэтому я стараюсь их избегать. это (что я нашел) использует карту или массив.
import java.util.Scanner;
class myString{
String s;
myString() {
s = "";
}
void setMyString(String s) {
this.s = s;
}
String getMyString() {
return s;
}
String countChar(String s){
s = s.toUpperCase();
int cnt = 0;
char c = s.charAt(cnt);
for (int i = 0; i <= s.length(); i++)
for (int j = 0; j <= s.length(); j++) //problem child here
c = s.charAt(cnt);
cnt++;
if (cnt == 1)
System.out.println(c+" appears "+cnt+" time in "+s);
else
System.out.println(c+" appears "+cnt+" times in "+s);
return "for"; //this is here to prevent complaint from the below end bracket.
}
}
public class RepeatedCharacters {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s;
System.out.println("Enter a sentence: ");
s = in.nextLine();
myString myS = new myString();
// System.out.println(myS.getMyString());
// System.out.println(myS.countChar());
myS.countChar(s);
}
}
Вы пробовали отлаживать? – shmosel
Ваша попытка сделать подсчет и распечатку результатов одновременно. Отделите эти два вопроса. Сначала запишите символы, а затем после этого выведите информацию. – NineBerry
Возможный дубликат [count occistence of element in array] (http://stackoverflow.com/questions/13923442/count-occurance-of-element-in-array) – Enfyve