Yazilar:

 Sponsor Reklam 


10.04.2009 (06:49)

 Regex Sınıfları, Pattern ve Matcher 
String'lerimizde yer alanın değerlerin istediğimiz forma uygun olup olmadığına ilişkin regex uyuşmasını regex paketinde yer alan Pattern ve Matcher sınıfları ile yapabiliriz. Pattern sınıfında yer alan compile metodu uygulayacağımız formu belirlerken matcher metodu uygulanacak değeri alıp Matcher nesnesi döndürmektedir. Bu nesne üzerinden de matches metodu ile eşleşmenin olup olmadığını öğrenebiliriz.

Bununla ilgili verilen string'in telefon numarasına uygun olup olmadığına şu örnekte bakalım.

package kodcu.net;

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Main {

  public static void main(String[] args) {

    Pattern pattern = Pattern.compile("5[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"); 

    String phoneNumber  = "5550000000";
    Matcher matcher = pattern.matcher(phoneNumber);
   
    if (matcher.matches()) {
      System.out.println(phoneNumber + " is a GSM number.");
    } else {
      System.out.println(phoneNumber + " is not a GSM number.");
    }


  }

}

Sonuç olarak ekran çıktımız beklendiği gibi şu şekildedir:
5550000000 is a GSM number.

Aksine telefon numarası şu şekilde verilseydi:
phoneNumber  = "abcdefgh";

Uyuşma olmayacağı için şu sonucu alırdık:
abcdefgh is not a GSM number.

Imza: admin

04.04.2009 (04:19)

 SimpleDateFormat Sınıfı ve Tarih Formatlama 
Daha önceki yazılarımızda Date sınıfından, Calendar sınıfından, TimeZone ve SimpleTimeZone sınıflarından Timestamp sınıfından ve kullanımından bahsetmiştik.

Bazı durumlarda elimizdeki zaman bilgisi farklı gösterimlere sahip formatlardan oluşabilir. Bu yazım tarzından zamanı uygun bir şekilde çekebilmek için substring işlemleri yapmak yerine bu tarih bilgisini istediğimiz biçime gelecek şekilde formatlarız. Bu amaca yönelik SimpleDateFormat sınıfını kullanırız.

Şimdi bununla ilgili bir örneğe bakalım:
package kodcu.net;

import java.sql.Timestamp;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.text.ParseException;

public class Main {

  public static void main(String[] args) {
   
    Date dt = null;
    Timestamp ts = null;
    // Create formatter with pattern
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");

    String str = "2009/04/03 20:58:12";

    try {
      dt = formatter.parse(str);
      ts = new Timestamp(dt.getTime());
      // The date before formatting
      System.out.println(str);
      // The date after formatting
      System.out.println(ts);
    }
    catch (ParseException ex) {
      // Parse Exception occured
    }
   
  }
 
}

Ekran çıktısı şu şekildedir:
2009/04/03 20:58:12
2009-04-03 20:58:12.0

İlk tarih formatı bize verilen format, ikincisi ise bizim kullanmak istediğimiz Timestamp bilgisi.
Imza: admin

03.04.2009 (05:06)

 Timestamp Sınıfı ve Kullanımı 
Timestamp sınıfı java.sql paketi içinde yer alan bir sınıftır. java.util.Date sınıfını genişletir. Yapılandırıcısı (constructor) 1 Ocak 1970'den bugüne geçen zamanın milisaniye cinsinden long değerini alır veya yıl, ay, gün, saat, dakika, saniye ve nano-saniye parametrelerini alır.

Kullanım ile ilgili basit bir örneğe bakalım:
package kodcu.net;

import java.sql.Timestamp;
import java.util.Date;

public class Main {

  public static void main(String[] args) {
    Date currentDate = new Date();
    Timestamp timestamp = new Timestamp(currentDate.getTime());
    System.out.println(timestamp.getTime());
    System.out.println(timestamp);
  }
}

Ekran çıktısı şu şekildedir:
1238698421453
2009-04-02 21:53:41.453

İlk değer 1970'ten günümüze geçen zamanın milisaniye cinsinden değeridir. İkinci değer ise günün formatıdır.
Imza: admin

14.03.2009 (04:48)

 Çalışma Dizinini Elde Etme - Sistem Özellikleri 
Çalışma yaptığımız kod dosyasının dizinini bulmak istersek şu kodu kullanabiliriz:
String curentDirectory = System.getProperty("user.dir");

Ekran çıktımıza bir örnek:
C:\Documents and Settings\kodcu\jbproject\kodcu.net

System sınıfımız üzerinden çalışılan bilgisayarın işletim sistemine, projenin java versiyonuna ve daha birçok özelliğine erişebiliriz. System.getProperty() metoduna parametre olarak şu değerleri girebiliriz.

"file.separator"
"java.class.path"
"java.class.version"
"java.home" : Java installation directory
"java.vendor"   
"java.vendor.url"
"java.version"
"line.separator"
"os.arch" : Operating system architecture
"os.name" : Operating system name
"path.separator"
"user.dir" : User's current working directory
"user.home"
"user.name"

Imza: admin

10.03.2009 (06:14)

 Dosyanın Boyutunu Elde Etme, Dosya, Klasör Taşıma 
Daha önceki yazılarımızda bir klasörün dizinine ulaşmaktan ve o dizinde yer alan dosyaların listelenmesinden, dizin oluşturma, yeniden adlandırma, silme, gizli bir klasör ya da dosya mı değil mi, son değiştirilme tarihi, dizin mi dosya mı olup olmadığını anlayabileceğimiz metotlardan bahsetmiştik. Bunlarla ilgili buraya ve şuraya bakabilirsiniz.

Dosyadan satır okumaya ve dosyaya satır yazmaya, dosyadan karakter okumaya ve dosyaya karakter yazmaya ve hatta nesnelerin-objelerin dosyaya yazılmasına ve okunmasına daha önce değinmiştik.

Son olarak da geçici dosyalar oluşturmaktan ve dosya/dizin olup olmadığını bulmaktan bahsettik.

Bir dosyanın byte büyüklüğünü bulmak için File sınıfının length() metodunu kullanabiliriz.

File file = new File("file_name");
// Obtain the number of bytes as a long integer
long fileLength = file.length();

renameTo() metodunu, yeniden isim vermek için kullanıyorduk. Bu metodu aynı zamanda bir dosya veya klasörü, dizini başka yere taşımak için de kullanabiliriz.

//File or directory that will be moved
File file = new File("file_name");

//Where will be destination directory
File dir = new File("destination_directory");

// Move file to destination directory
boolean isSuccessful = file.renameTo(new File(dir, file.getName()));

if (isSuccessful) {
  // File was moved successfully
}

Imza: admin

09.03.2009 (05:26)

 Dosya veya Dizinin Olup Olmadığını Bulmak 
Dosya (file) veya dizinlerle-klasörlerle (directory-folders) çalışıyorsak daha önceden var olup olmadığı bilgisine ihtiyaç duyabiliriz. Bunu File sınıfımızda exists() metodu ile öğrenebiliriz.

Bu metodu File sınıfından oluşturduğumuz örnekte (instance) çağırırız ve true/false dönüşlü boolean değer elde ederiz.

Örnek:
// Create an instance of File class
File file = new File("file name here");
// Let's find out wheter the file exists or not
boolean isExist = file.exists();

if (exists == true) {
  // File or directory exists if result is true
} else {
  // if result is false, file or directory does not exist
}

Kodu kullanabilmemiz için File sınıfını import etmemiz gerekiyor.
// In order to use the code above, we must import File class
import java.io.File;

Imza: admin

01.03.2009 (19:50)

 Geçici Dosyalar Oluşturmak (Temporary Files) 
Programlarımızda geçici dosyalar (temporary) oluşturmak, onlar üzerine işlemler yapmak ve işimiz bittiğinde silmek isteyebiliriz. Bu "temp" dosyalarını java.io paketi içinde File sınıfının createTempFile() metodu ile oluşturabiliriz. Program çıkışında da bu dosyanın silinmesi için deleteOnExit() metodu yer almaktadır.

Şimdi bu konu ile ilgili örneğimize bakalım. Örnek basit bir "temp" dosya oluşturacak, içine bir yazı ekleyecek, daha sonra bu dosyadan bu yazıyı okuyup ekrana bastıracak ve bu geçici dosyayı silecek.

package kodcu.net;

import java.io.File;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Main {

  public static void main(String[] args) {

    try {
      // Create temporary file
      File temp = File.createTempFile("kodcu", ".net");

      // When program exits, delete temporary file
      temp.deleteOnExit();

      // Write something to temporary file
      BufferedWriter bw = new BufferedWriter(new FileWriter(temp));
      bw.write("kodcu.net");
      // Close BufferedWriter
      bw.close();

      // Create BufferedReader to read
      BufferedReader br = new BufferedReader(new FileReader(temp));
      String str = br.readLine();
      // Close BufferedWriter
      br.close();
     
      System.out.println(str);
    }
    catch (IOException e) {
    }

  }
 
}

Imza: admin

28.02.2009 (05:02)

 TimeZone ve SimpleTimeZone Sınıfları 
TimeZone sınıfımız, zaman ile ilgili işlemler yapmamızı sağlar. SimpleTimeZone sınıfı da TimeZone sınıfı genişletir (extend), yani bir alt sınıfını oluşturur.

TimeZone sınıfı, Greenwich zamanına (GWT) göre saat dilimlerinde ötelemeler yapmayı sağlar. Bunun dışında önemli bir özelliği de gün ışığından yararlanma zamanını (daylight saving time) hesaplar.

SimpleTimeZone sınıfı ise üst sınıfın özelliklerini kullandığı gibi ayrıca Gregorian takviminin saat dilimleri ile işlem yapmayı sağlamaktadır.
Imza: admin

24.02.2009 (05:55)

 Calendar Sınıfı 
Calendar sınıfı bir özet (abstract) sınıftır. Ondan türeyecek sınıfların milisaniye üzerinden gün, ay, yıl, saat, dakika ve saniye işlemleri yapılmasını sağlar. Bu sınıfı genişleten (extend) alt sınıf GregorianCalendar sınıfıdır.

Calendar sınıfı MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, PM, AM, JANUARY, FEBRUARY, MARCH, APRIL, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER, WEEK_OF_YEAR, WEEK_OF_MONTH, HOUR_OF_DAY, MINUTE, SECOND, HOUR gibi çeşitli sabitleri içerir.

Geçerli saat ve tarih bilgileri bu sınıfın static tanımlı getInstance() metodu ile elde edilebilir. Abstract anahtar sözcüğü üzerine şu yazıda da bahsettiğimiz gibi özet sınıfların nesneleri üretilmez. Bu nedenle doğrudan üretemediğimiz nesneyi bu static metodu kullanarak üretebiliriz.

Örnek:
package kodcu.net;

import java.util.Calendar;

public class CalendarDemo {

  // getInstance() is a static method of Calendar abstract class.
  Calendar calendar = Calendar.getInstance();
  // current time
  int hour = calendar.get(Calendar.HOUR);
  int minute = calendar.get(Calendar.MINUTE);
  int second = calendar.get(Calendar.SECOND);
  // saat bilgisini 1 saat ileri alalım
  // let's put the clock forward 1 hour
  calendar.set(Calendar.HOUR, 1);

}

Imza: admin

15.02.2009 (06:25)

 Date Sınıfı 
Date sınıfı, tarih ve saat üzerine işlemler yapmamızı sağlar. Tarihler arası karşılaştırma, 1 Ocak 1970'ten bugüne geçen sürenin milisaniye cinsinden değerin hesabı yapılabilmektedir.

package kodcu.net;

import java.util.Date;

public class Main {

  public static void main(String[] args) {

    Date date = new Date(); // Today
    int result = date.compareTo(date);
    // result will be zero
    System.out.println(result);

  }
}

Bu örnekte Date sınıfının parametresiz yapılandırıcısını (constructor) kullanarak şu anki zamanı elde ederiz. compareTo() metodu tarihleri karşılaştırmayı sağlar ve aynı değerdeler ise "0" sonucunu döndürür. Bu metoda String'lerin karşılaştırılmasında da değinmiştik.

Eğer Date(long) yapılandırıcısını kullanırsak, 1 Ocak 1970'ten long sayısı kadar ilerki bir tarihi verir. Benzer olarak getTime() metodu da bu tarihe olan uzaklığın milisaniye cinsinden değerini verir. setTime(long) metot çağrısı ile de tarih long'la milisaniye cinsinden belirtilen tarihe getirilir. after(Date), before(Date) metotları da iki tarih arasında karşılaştırma yapmayı sağlar.

Örnek:
// Thu Jan 01 02:00:00 EET 1970
Date date1 = new Date(444);
// Wed Jan 07 12:19:15 EET 1970
Date date2 = new Date(555555555);
// This is false
date1.after(date2);
// This is true
date1.before(date2);

Bu sınıfta yer alan çeşitli metotlarda (getHours(), getMinitues(), getDay()) Java'nın yeni versiyonlarında yer bulmamıştır, başka sınıflara kaydırılmıştır (bkz: Calendar, DateFormat, SimpleDateFormat, TimeZone).
Imza: admin

 1   2   3   4  ··  10 








Yazilar kaynak gosterilmeden kopyalanamaz © www.kodcu.net // Twitter