الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أحسب عدد مرات حدوث كل حرف داخل String بدون تكرار

بدأه محمد صلاح عبدالحميد في 13 مايو 2008 · 11 رد · 2,996 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته أنا عملت كود يحسب عدد مرات حدوث كل حرف داخل string لكن لم أعرف كيف اتغلب على مشكلة لو وجدت حرف تم حسابه من قبل كيف أعرف وأيضا كيف أستقبل حرف وأزيد في عدد مراته الموجود عندي هذا هو الكود ارجو المساعدة

import java.util.*;
public class Main {
  static Scanner console= new Scanner(System.in);
	public static void main(String[] args) 
	{
	System.out.print("Please Enter aString ");
	System.out.println();
	String str =console.next();
	char[]third =str.toCharArray();
   for(int counter =0;counter<third.length;counter++)
   {   char letter= third[counter];
	   int flage=0;
	for (int i=0; i<third.length; i++) 
		{
		if (letter==third)  
	flage++;
		else continue;
	}


   }

	}
public static void counter (int x)
{
 int []count= new int[x];
 // this method to store the number of occurrences of each 
 //alphabetical letter in the string
}
public static void read (int x)
{
// this method should recive acharacter 
// then update its the corresponding counter	
}
}
#2

أخي محمد لم أفهم قصدك

هل تريد حساب عدد حروف الstring بدون أن يتكر الحرف مرتين مثلاً إذا كان النص mohammed تريده أن يعطيك 6

أم تريد حساب كل حرف كم تكرر داخل الstring

تحياتي

#3

جزاك الله خيرا أخي مالك على إهتمامك نعم أقصد إذا كان عندي نص وليكن adads

فأريد المخرج أن يكون حرف الa تكرر مرتين حرف الd تتكرر مرتين حرف الs تتكرر مرة واحدة وهكذا يحسب تكرار كل حرف من غير تكرار إذا وجد الحرف مرة أخرى

#4

قم بعمل مصفوفه من 26 خانه ، تمثل تكرار الحروف . وأجعل القيمه الأبتدائيه لكل العناصر صفر .

الأن عندما تجد الحرف الأول في النص ، قم بتحويل الحرف الى رقم وذلك بطرح 97 ( هنا جميع الأحرف تكون صغيره) ، خذ الرقم الناتج كIndex وأجمع عليه واحد . أستمر هكذا لبقيه الأحرف .

public class Demo
{
	public static void main (String args[])
	{
		String str = "hello my firend";

		System.out.println("Number of Character is : " + str.length() );

		int array[] = new int[26];

		for (int i=0; i<26; i++)
			array = 0;


		for (int i=0; i<str.length(); i++)
		{
			if ( str.charAt(i) == ' ' ) 
				continue;
			else
				array[str.charAt(i)-97]++;
		}

		for (int i=0; i<26; i++)
		{
			if ( array == 0 )
				continue;
			else
				System.out.println( (char) (i+97 ) + " : " + array);
		}

	}
}

طريقه أخرى ، وهي أيضا بعمل نفس المصفوفه من 26 خانه ، بعدها أبحث من بدايه النص الى النهايه وفي حال وجدت حرفين متشابهين قم بزياده الIndex بواحد .

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#5

مشكور يأخي لكن كيف أعمل الmethod التي تسقبل حرف تتزود عدد مرات حدوثه بواحد

#7

أرجو شرح لماذا تم طرح97 وشكرا وكيف أستقبل حرف جديد وأزود عدد مرات حدوثه

تم تعديل هذه المشاركة بواسطة محمد صلاح عبدالحميد في 14 مايو 2008 في 05:33

#8

جرب هذا ...

	public static void main(String[]t){
		System.out.println(read("othman saad"));
	}

	public static String read(String text){
		TreeMap<Character, Integer> map=new TreeMap<Character, Integer>();
		for(char c:text.toCharArray()){
			if(c == ' ')continue;
			else if(map.containsKey(c))map.put(c, (1+map.get(c)));
			else map.put(c, 1);
		}
		StringBuffer result=new StringBuffer();
		Iterator<Character> it=map.keySet().iterator();
		while(it.hasNext()){
			char c=it.next();
			result.append(c).append(" : ").append(map.get(c)).append("\n");
		}
		return result.toString();
	}
#9

جزاك الله خيرا هلا شرحت هذا الكود

#10

ممكن طريقة أبسط ياإخوة

#11
اقتباس
قم بتحويل الحرف الى رقم وذلك بطرح 97 ( هنا جميع الأحرف تكون صغيره)

الأخ رومانسي يتكلم عن الترميز ASCII أول حرف فيهم هو حرف a وقيمته 97

أما لماذا قمنا بالطرح

لكي نتمكن من اللإضافة على المصفوفة المكونة من 26 موقع

أول موقع فيها للحرف a وآخر موقع للحرف z

أتمنى أن تكون الشيفرة واضحة

بالنسبة للشيفرة الخاصة بالأخ عناقي

فأنا لم أتعامل مع Map من قبل

لذا لا يمكنني شرحها

أتمنى لو يشرحها هوه

ربما نستفيد أيضاً

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#12

جزاك الله خيرا على الإيضاح وبارك الله في جميع الإخوة الذين يساعدوا إخوانهم ويمدوا إليهم يد العون حفظكم الله جميعا

مواضيع مشابهة