Java ile metni karakterlerine bölelim

Kopmamak için okuduğum JavaSE kitabı içinde tekrar ve antreman yaptığım bir String-Karakter çalışmasıdır. Yap-sil yerine buraya ekleyerek ihtiyaç duyan birileri tarafından kullanılabilmesini hedefledim. Uygulama 2 sınıftan oluşuyor. İlk (ana) sınıf içinde kullanıcıdan stringi alıyoruz, sonra metin işlerini toparladığımız sınıf içinde farklı metodlarla geriye girilen metinle bilgi döndürüyoruz. Bu tip basit uygulamalarda hem  fikir verebilecek hemde kullanışlı olabilecek “Tekrar denemek ister misiniz ?” tarzı bir çalışmada bulunmaktadır. Böylece basit ama hem sınıf mantığını, hem karakter-string çalışmalarını, hem scanner sınıfı ile girişi, hemde do-while döngüsü için örnek olabilecek bir yapıyı inceleyebileceksiniz.

Uygulamanın çalışan görüntüsü şöyle;

2016-01

İlk sınıf GirileniSay.java dosyasından oluşuyor;

package org.mustak.girileniSay;

/**
 * @author Hakan Müştak
 * 2016/01
 */

import java.util.Scanner;

public class GirileniSay {

	//Kullanıcıdan veri girişi aldığımız Scannerlar
	private static Scanner scQuit;
	private static Scanner scInputText;

	//Ana Metod
	public static void main(String[] args) {
				
		//Çıkış kontrol döngüsü
		do {
			//Çalışmayı yaptığımız Metod
			goster();
		} while (quitControl());

		//Çıkış mesajı
		System.out.println("[Çıkış tamamlandı]");
		
	}//main
	
	//--------------------------------------------------------------------------
	// Ekranda giriş ve gösterimi yapan metod
	private static void goster() {

		//Metin işleri için sınıfı yarattık
		MetinIsleri tj = new MetinIsleri();
		
		System.out.print("Metninizi Girin : ");
		scInputText = new Scanner(System.in);
		tj.setText(scInputText.nextLine());

		System.out.println("-----------------------------------------------------------");
		System.out.printf("Girilen Metin : %s\n", 				tj.getText());
		System.out.printf("Karakter Sayısı : %s\n", 			tj.numberOfChar());
		System.out.printf("Küçük Karakter Sayısı : %s\n", 		tj.numberOfLowerCaseChar());
		System.out.printf("Büyük Karakter Sayısı : %s\n", 		tj.numberOfUpperCaseChar());
		System.out.printf("Rakam Sayısı : %s\n", 				tj.numberOfNumberChar());
		System.out.printf("Alfanumerik Karakter Sayısı : %s\n", tj.numberOfAlfanumericChar());
		System.out.println("-----------------------------------------------------------");
	}

	//--------------------------------------------------------------------------
	// Çıkış Kontrol metodu
	protected static boolean quitControl(){
		System.out.print("Tekrar denemek ister misiniz ? [E/H] ");
		scQuit = new Scanner(System.in);
		if (scQuit.nextLine().equalsIgnoreCase("e"))
			return true;
		else
			return false;
	}//quitControl()

}//class

 

İkinci sınıf MetinIsleri.java dosyasından oluşuyor;

package org.mustak.girileniSay;

/**
 * @author Hakan Müştak
 * 2016/01
 */

public class MetinIsleri {

	// Değişkenler
	private String text;

	// Getter-Setter
	protected String getText() {
		return text;
	}

	protected void setText(String text) {
		this.text = text;
	}
	
	//--------------------------------------------------------------------------
	//Küçük harfli karakter sayısı
	protected int numberOfLowerCaseChar() {
		int count = 0;
		for (int i = 0; i < getText().length(); i++) {
			if (Character.isLowerCase(getText().charAt(i)))
				count++;					
		}
		return count;
	} 
	
	//Büyük harfli karakter sayısı
	protected int numberOfUpperCaseChar() {
		int count = 0;
		for (int i = 0; i < getText().length(); i++) {
			if (Character.isUpperCase(getText().charAt(i)))
				count++;
		}
		return count;
	} 
	
	//Sayı içeren karakter sayısı
	protected int numberOfNumberChar() {
		int count = 0;
		for (int i = 0; i < getText().length(); i++) {
			if (Character.isDigit(getText().charAt(i)))
				count++;
		}
		return count;
	} 

	//alfanumeric karakter sayısı
	protected int numberOfAlfanumericChar() {
		int count = 0;
		for (int i = 0; i < getText().length(); i++) {
			if (!Character.isLetterOrDigit(getText().charAt(i)) && !Character.isSpaceChar(getText().charAt(i)))
				count++;
		}
		return count;
	} 
	
	//karakter sayısı
	protected int numberOfChar() {
		return getText().length();
	} 

}

 

Hakan Müştak  2016/01

 

   

2 yorum

  1. Adsız dedi ki:

    Sınıf adı neden tj? Bir yerden alıntı mı yaptınız

    • hmustak dedi ki:

      Hayır alıntı değil. Önce sınıfı İngilizce TextJob.java adı altında yazmıştım. Sonra yayınlamaya karar verince dosya ismini MetinIsleri.java yaparken sınıfın içinde refactoring yapmadan burada paylaştım. Kod içindeki tj ismi TextJob dan geliyor.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

question razz sad evil exclaim smile redface biggrin surprised eek confused cool lol mad twisted rolleyes wink idea arrow neutral cry mrgreen

*

Captcha Kontrolü * Zaman aşımı, sayfayı tekrar yükleyin


Top