პრობლემა: კონსოლიდან შეგყვავს ტექსტი პროგრამამ უნდა დაბეჭდოს სტატისტიკა რომელი სიმბოლო რამდენჯერ გვხვდება.
- დავიმახსოვროთ ყველა განსხვავებული სიმბოლო.
- თითოეული სიმბოლოსთვის დავთვალოთ, თუ რამდენჯერ გვხვდება იგი.
განსხვავებული სიმბოლოების დამახსოვრება String-ში შეგვიძლია. IndexOf(გვიბრუნებს პირველ ინდექსს, სადაც გვხვდება ესა თუ ის სიმბოლო) მეთოდის მეშვეობით ჩვენ შევამოწმებთ გვხვდება თუ არა სიმბოლო(თუკი არ გვხვდება IndexOf დაგვიბრუნებს -1-ს).
შესაბამისად მივიღებთ კოდს:
if(usedCharacters.indexOf(ch) == -1){
usedCharacters+=ch;
}countCharacters მეთოდში დავითვალოთ კონკრეტული სიმბოლოს რაოდენობა. შემოვიღოთ count ცვლადი, რომელშიც შევინახავთ პასუხს. თუკი სტრინგზე იტერაციისას შეგვხვდა ეს კონკრეტული სიმბოლო, count ცვლადის მნიშვნელობა გავზარდოთ.
შესაბამისად მივიღებთ კოდს:
private int countCharacters(String text , char ch){
int count = 0;
for(int i = 0; i < text.length(); i++){
char current = text.charAt(i);
if(current == ch){
count++;
}
}
return count;
}- კოდი ტექსტის ნებისმიერი მნიშვნელობისთვის სწორად იმუშავებს, რადგან ამოცანის ამოხსნის ლოგიკა არ არის დამოკიდებული ტექსტის მნიშვნელობასა თუ ზომაზე.
- შეგვეძლო, გამოგვეყენებინა მონაცემთა სრუქტურა Map, რომლის key იქნებოდა char, ხოლო value - int. შემოყვანილ ტექსტზე იტერაციისას Map-ში კონკრეტული char-ის value-ს გავზრდიდით და საბოლოოდ Map-შივე გვექნებოდა შენახული სიმბოლოების რაოდენობები. Map-ის toString მეთოდის საშუალებით კი გამოვიტანდით სიმბოლოების რაოდენობას.