Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

จะรับอักขระที่เกิดขึ้นสูงสุดในสตริงโดยใช้ C # ได้อย่างไร


อักขระที่เกิดขึ้นสูงสุดในสตริงคืออักขระที่เกิดขึ้นเป็นจำนวนมากที่สุด ซึ่งสามารถแสดงให้เห็นได้โดยใช้ตัวอย่างต่อไปนี้

String: apples are red
The highest occurring character in the above string is e as it occurs 3 times, which is more than the occurrence of any other character.

โปรแกรมที่ได้รับอักขระที่เกิดขึ้นสูงสุดในสตริงโดยใช้ C# จะได้รับดังนี้

ตัวอย่าง

using System;
namespace charCountDemo {
   public class Example {
      public static void Main() {
         String str = "abracadabra";
         int []charCount = new int[256];
         int length = str.Length;
         for (int i = 0; i < length; i++) {
            charCount[str[i]]++;
         }
         int maxCount = -1;
         char character = ' ';
         for (int i = 0; i < length; i++) {
            if (maxCount < charCount[str[i]]) {
               maxCount = charCount[str[i]];
               character = str[i];
            }
         }
         Console.WriteLine("The string is: " + str);
         Console.WriteLine("The highest occurring character in the above string is: " + character);
         Console.WriteLine("Number of times this character occurs: " + maxCount);
      }
   }
}

ผลลัพธ์

ผลลัพธ์ของโปรแกรมข้างต้นมีดังนี้

The string is: abracadabra
The highest occurring character in the above string is: a
Number of times this character occurs: 5

ตอนนี้ เรามาทำความเข้าใจโปรแกรมข้างต้นกัน

สตริง str คือ abracadabra อาร์เรย์ใหม่ charCount ถูกสร้างขึ้นซึ่งมีขนาด 256 และแสดงอักขระทั้งหมดในตาราง ASCII จากนั้นสตริง str จะถูกข้ามโดยใช้ for loop และค่าใน charCount จะเพิ่มขึ้นตามอักขระในสตริง ซึ่งสามารถเห็นได้ในข้อมูลโค้ดต่อไปนี้

String str = "abracadabra";
int []charCount = new int[256];
int length = str.Length;
for (int i = 0; i < length; i++) {
   charCount[str[i]]++;
}

จำนวนเต็ม maxCount เก็บจำนวนสูงสุดและอักขระเป็นค่าถ่านที่เกิดขึ้นครั้งสูงสุด ค่าของ maxCount และอักขระสามารถกำหนดได้โดยใช้ for loop ซึ่งสามารถเห็นได้ในข้อมูลโค้ดต่อไปนี้

int maxCount = -1;
char character = ' ';
for (int i = 0; i < length; i++) {
   if (maxCount < charCount[str[i]]) {
      maxCount = charCount[str[i]];
      character = str[i];
   }
}

สุดท้าย ค่าของ str, maxCount และอักขระจะปรากฏขึ้น ซึ่งสามารถเห็นได้ในข้อมูลโค้ดต่อไปนี้

Console.WriteLine("The string is: " + str);
Console.WriteLine("The highest occurring character in the above string is: " + character);
Console.WriteLine("Number of times this character occurs: " + maxCount);