Şimdi Ara

Java Odevim String deki charlar

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
11
Cevap
0
Favori
4.252
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Selamlar bana acil olarak Bir kelime içindeki harflerin sayısını bulan program lazım yani açıklamak gerekirse

    Araba kelimesinde 3 adet "a", 1 adet "r" 1 adet "b" şeklinde sonuç vericek

    Java dilinde Eclipse kullanıyorum



  • Bufferreader ı kullanıcaksın

    2 tane array oluştur
    1. arrayde alınan char ları tut
    2. arrayde bu charların kaç kere kullanıldığını

    önce okuturken ilk aldığı karakter i arrayin içinde eşitliğine baktır yani

    if(exampleArray[a] == exmplChar){
    exampleArrayNumber[a]+=1;
    break;
    }
    else if (exampleArray[a]==null){ <=unutma char kullanıcaksın arrayini o yüzden .equals("") değil
    exampleArray[a]=exmplChar;
    exampleArrayNumber[a]=1;


    şeklinde eşitleme sağlayabilirsin bastırırkende tek tek önce exampleArray i çağrırısn sonra da Number ı bastırırsın ufak bi if( ==null) ekleyerek boş kalan array leride bastırmamış olursun, kolay gelsin.
  • Böyle bir kod yazdım fikir olsun diye;

     
    package javaproject;
    public class Main {
    public void karakterSayaci(String str) {
    if (str == null)
    return;
    String[] karakterDizisi = {"a","b","c","ç","d","e","f","g","ğ","h","ı","i","j","k","l","m","n","o","ö",
    "p","q","r","s","ş","t","u","ü","v","w","x","y","z",
    "0","1","2","3","4","5","6","7","8","9"}; //42 adet
    int[] sayacDizisi = new int [42];
    int sayac = 0;
    for (int i = 0; i < str.length(); i++) {
    char charKarakter = str.charAt(i);
    String strKarakter = Character.toString(charKarakter);
    for(int j=0;j<karakterDizisi.length;++j)
    {
    if (karakterDizisi[j].equals(strKarakter)||karakterDizisi[j].equals(strKarakter.toLowerCase()))
    {
    int l = sayacDizisi[j];
    sayacDizisi[j]= l+1 ;
    }
    }
    sayac++;
    }
    for (int k = 0; k < 42; k++) {
    if (sayacDizisi[k] != 0)
    System.out.println(sayacDizisi[k] + " adet " + karakterDizisi[k] );
    }
    }
    public static void main(String[] args) {
    new Main().karakterSayaci("aAiİıIoOöÖuUüÜ3");
    }
    }



    < Bu mesaj bu kişi tarafından değiştirildi gergozen -- 1 Aralık 2010; 21:39:55 >




  • Saolun arkadaşlar cevaplar için ancak daha olmadı benim iş çünkü şöle bir durum var.

    String word= jTextField1.getText(); // textden aldık bilgiyi "araba" yazssın

    char[] charArray;
    char[] charArray2; //2.array açsak

    charArray = word.toCharArray(); // şeklinde dönüşümü yaptık

    peki sade bir şekilde nasıl tüm bu karakterli 1 er tane olarak yeni bir diziye atıcaz

    for(int i=0; charArray.length; i++) {
    for(int j=0; charArray.length; j++){
    if(charArray[j]!=charArray2){charArray2=charArray}
    }
    }

    bunu bu mantıkta yapma şansımız yokmu nasıl olcak yada nerde yanlış var burda çalışmıyor bu şekilde
  • word stringini neden diziye atıyorsun, ödev o şekilde mi ?
    Yukarıdaki kodu derledim çalıştı (netbeans 6.9.1 ve jdk1.6.0_18).



    < Bu mesaj bu kişi tarafından değiştirildi gergozen -- 1 Aralık 2010; 23:31:26 >
  • çalıştımı nasıl yani tam olarak çalıştırdığın kodu bana yazarmsın.
    word stringi char diziye atamadn nasıl tek tek karşılaştıabilirim?
  • new Main().karakterSayaci("aAiİıIoOöÖuUüÜ3");
    yerine
    new Main().karakterSayaci("araba");
    yazabilirsin
    veya
    new Main().karakterSayaci(word);

    yöntem çok. kodu ise aşağıda tekrar veriyorum, bir değişiklikle;

     
    package javaproject;
    public class Main {
    public void karakterSayaci(String str) {
    if (str == null)
    return;
    String[] karakterDizisi = {"a","b","c","ç","d","e","f","g","ğ","h","ı","i","j","k","l","m","n","o","ö",
    "p","q","r","s","ş","t","u","ü","v","w","x","y","z",
    "0","1","2","3","4","5","6","7","8","9"}; //42 adet
    int[] sayacDizisi = new int [42];
    int sayac = 0;
    for (int i = 0; i < str.length(); i++) {
    char charKarakter = str.charAt(i);
    String strKarakter = Character.toString(charKarakter);
    for(int j=0;j<karakterDizisi.length;++j)
    {
    if (karakterDizisi[j].equals(strKarakter)||karakterDizisi[j].equals(strKarakter.toLowerCase()))
    {
    int l = sayacDizisi[j];
    sayacDizisi[j]= l+1 ;
    }
    }
    sayac++;
    }
    System.out.println(str + " içindeki harfler");
    for (int k = 0; k < 42; k++) {
    if (sayacDizisi[k] != 0)
    System.out.println(sayacDizisi[k] + " adet " + karakterDizisi[k] );
    }

    }
    public static void main(String[] args) {
    new Main().karakterSayaci("Araba");
    new Main().karakterSayaci("Ankara");
    }
    }




  • peki karakter dizisini elle yani


    String[] karakterDizisi = {"a","b","c","ç","d","e","f","g","ğ","h","ı","i","j","k","l","m","n","o","ö",
    "p","q","r","s","ş","t","u","ü","v","w","x","y","z",
    "0","1","2","3","4","5","6","7","8","9"}; //42 adet

    yukarıdaki olay olmadan programa otamatik olrak buldurma şansımız yokmu
  • quote:

    Orijinalden alıntı: OnlyHero
    word stringi char diziye atamadn nasıl tek tek karşılaştıabilirim?

    str.charAt(i); str strignindeki i'inci karakteri veriyor. böylece tek tek karakterler alıp karşılaştırabiliyorsun.
    str.length() ile de str strignindeki karakter sayısını alıp döngünü onunla sınırlandırıyorsun.
  • quote:

    Orijinalden alıntı: OnlyHero

    peki karakter dizisini elle yani


    String[] karakterDizisi = {"a","b","c","ç","d","e","f","g","ğ","h","ı","i","j","k","l","m","n","o","ö",
    "p","q","r","s","ş","t","u","ü","v","w","x","y","z",
    "0","1","2","3","4","5","6","7","8","9"}; //42 adet

    yukarıdaki olay olmadan programa otamatik olrak buldurma şansımız yokmu


    var, tabi de uğraştırır. Önce diziye atar, sonra alfabetik sıralar, sonra (veya önce) rakam ve harf olmayanları ayırır (bunun için yine yukarıdaki gibi bir dizi oluşmalı bence, hem istediğin karakterleri de rahatça ayıklayabilirsin), sonra ilk karakteri değişken değeri olarak atar değerine 1 verir, ikinci ile karşılaştırırsın. aynı ise aynı değişkeni 1 artırır değişik karakter gelirse yeni bir değişken oluşturursun.

    Tabi daha basit yöntei de olabilir, ama benim aklıma gelen en basit ve anlaşılır yöntem yukarıdaki... Sadece bir kaç gereksiz dönüştürme olabilir içinde.

    İyi geceler...



    < Bu mesaj bu kişi tarafından değiştirildi gergozen -- 1 Aralık 2010; 23:55:02 >




  • Saol dostum yarıdımın için,iyi geceler sana
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.