Şimdi Ara

Java da String karşılaştırma da Sorun ?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
7
Cevap
0
Favori
1.941
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Amacım klavyeden bir tarih alıp klavyeden aldığım diğer tarihle karşılaştırmak.Tarihleri gg.aa.yy şeklinde araya . koyarak alıyorum ve bu tarihleri split ile bölüyorum yalnız karşılaştıracagım day2 ve day kısmında( if (haahriko2.day2.compareTo(day)) hata veriyor nedeni bilen düzeltebilirse sevinirim.


    package sınıf3;
    import java.util.*;
    import javax.swing.*;

    public class Sınıf3 {
    String month,day,year,month2,day2,year2;


    public static void main(String[] args) {

    Sınıf3 haahriko=new Sınıf3();
    String choise,input,date;


    date=JOptionPane.showInputDialog("");
    String[] str=date.split(".");
    haahriko.day=str[0];
    haahriko.month=str[1];
    haahriko.year=str[2];

    input=JOptionPane.showInputDialog("what you do ?\n a)two date's comparison \n b)date's top day add \n c)date's show \n d)date's change");

    switch(input)
    {
    case "a":
    haahriko.comparison(haahriko.day,haahriko.month,haahriko.year);
    case "b":
    haahriko.add();
    case "c":
    haahriko.show();
    case "d":
    haahriko.change();
    }
    }




    public void comparison(String day, String month, String year) {
    String date2;
    Sınıf3 haahriko2=new Sınıf3();
    date2=JOptionPane.showInputDialog("");
    String[] str=date2.split(".");
    haahriko2.day2=str[0];
    haahriko2.month2=str[1];
    haahriko2.year2=str[2];

    if (haahriko2.day2.compareTo(day))
    {

    }



    < Bu mesaj bu kişi tarafından değiştirildi 8086java -- 12 Mayıs 2013; 17:37:34 >







  • compareTo yerine String sınıfının equals() metodunu kullanmayı dene.
  • incompatible types required:boolean founds:int hatası veriyor
  • Ben compareTo ile büyüklük küçüklük durumlarını anlamayı heddefliyorum 1. tarih büyükse 1 degerini döndürecek.Ancak equals ta sana sadece eşitmi degilmi onu döndürür hangisinin büyük olduğunu döndürmez
  • Hatayı buldum merak edenler olursa diye koyuyorum

    if (haahriko2.year2.compareTo(year)==1) ==1 birinci sayı büyükse ==0 eşitse ==-1 ikinci sayı büyükse diye koymak gerekiyormuş
  • quote:

    Orijinalden alıntı: 8086java

    Ben compareTo ile büyüklük küçüklük durumlarını anlamayı heddefliyorum 1. tarih büyükse 1 degerini döndürecek.Ancak equals ta sana sadece eşitmi degilmi onu döndürür hangisinin büyük olduğunu döndürmez

    Pardon, soruyu tam olarak okumadan cevaplamıştım. String tipinde aldığın veriyi parseInt() metoduyla sayısal değere dönüştürüp kıyaslamada kullanabilirsin.
    Örn;
    if(Integer.parseInt(haahriko2.year2) <= Integer.parseInt(haahriko2.year))
    return false;
    else if(Integer.parseInt(haahriko2.month2) <= Integer.parseInt(haahriko2.month))
    return false;
    else if(Integer.parseInt(haahriko2.day2) <= Integer.parseInt(haahriko2.day))
    return false;
    else
    return true;




  • quote:

    Orijinalden alıntı: ERTRUL

    quote:

    Orijinalden alıntı: 8086java

    Ben compareTo ile büyüklük küçüklük durumlarını anlamayı heddefliyorum 1. tarih büyükse 1 degerini döndürecek.Ancak equals ta sana sadece eşitmi degilmi onu döndürür hangisinin büyük olduğunu döndürmez

    Pardon, soruyu tam olarak okumadan cevaplamıştım. String tipinde aldığın veriyi parseInt() metoduyla sayısal değere dönüştürüp kıyaslamada kullanabilirsin.
    Örn;
    if(Integer.parseInt(haahriko2.year2) <= Integer.parseInt(haahriko2.year))
    return false;
    else if(Integer.parseInt(haahriko2.month2) <= Integer.parseInt(haahriko2.month))
    return false;
    else if(Integer.parseInt(haahriko2.day2) <= Integer.parseInt(haahriko2.day))
    return false;
    else
    return true;

    eyvallah hocam




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.