Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Consoledan Input Okuma (Java)


Öne çıkan mesajlar

Mesaj tarihi:
selam,

graph theory ile ilgili bir ödevim vardı da, consoledan Node, Edge, length gibi şeyleri okumam gerekiyor.

input şekli:


Node Istanbul
Node Corlu
Node Tekirdag
....

Edge Istanbul,Corlu,85
Edge Corlu,Tekirdag,25
....

PrintNode Istanbul
PrintNode Corlu
....

PrintEdge Istanbul,Corlu
.....
vs. vs.




gibi olacak. anlaşılacağı üzere başında node veya edge olunca hashmap'e ekliyoruz onları. printedge, printnode olunca da print ediyoruz.

şimdi bu inputu hangi şekilde okuyabilirim? ne yaptıysam başarısız oldu.

en yakın zamanda bi cevap alabilirsem sevinirim. teşekkürler.
Mesaj tarihi:
yok sorun o değil zaten... okuma işinde sorun yok. ben acele ile yazdığımdan zaten tam anlatamadım.

olay inputu parametre olarak alabilmek için ne yapmam gerektiği. her satırı bir string arrayine alıp:

   if (array[0] == "Node" ) {
graph.addNode(array[1]);

}
.
.
.
vs. vs.


şeklinde yazdım ama nedense başarılı olmadı. bunun üzerine çözümler istiyorum aslında
Mesaj tarihi:
scannerla while dongusu icinde inputu satir satir okut. sonra her satir icin string.contains("Node") falan diye kontrol edip o satirda space ten sonrasini yazdirabilirsin ya da ne yapmak istiyosan onu yaptirabilirsin.

hazir olan string metodlarini kullanman icin yardimci olur:

http://download.oracle.com/javase/1.4.2/docs/api/

java api candir bu arada kullanalim kullandiralim.
Mesaj tarihi:
verdigim linkten sol ustteki kutucuktan java.lang a tikla. sonra onun altindaki yerden String e tikla. o istedigini yapmak icin gerekli olan butun hazir metodlar var. birkac tanesini(substring, indexOf gibi) birlikte kullaninca cikarirsin.
Mesaj tarihi:
şimdi Node okumada bir sorun yok da Edge i nasıl okuyacağımı kestiremedim

node için:

while(sc.hasNextLine()){ 
if (sc.nextLine().contains("Node")) {
graph.addNode(sc.nextLine().substring(5));
}
}


dedim.

ama Edge Istanbul,Corlu,23 gibi bir inputtan istanbul corlu ve 23ü nasıl çekicem bilemedim. belki 23ü nextInt() ile alırım da istanbul ve corlu yu nasıl alabilirim?

substring ile yapamam çünkü node isimlerinin harf sayısı farklılık gösterecek.
Mesaj tarihi:
of çok kasış oldu ama şunu yazdım:

else if (sc.nextLine().contains("Edge" )) {
sequence = sc.nextLine();
length = sc.nextInt();
from = sequence.substring(5, sequence.indexOf("," )-1);
to = sequence.substring(sequence.indexOf("," )+1);
graph.addEdge(from, to).setLength(length);
}



daha denemedim henüz diğerlerini yazıp öyle bakıcam çalışıp çalışmadığına
Mesaj tarihi:
her satirdaki karakterleri teker teker farkli stringlere yazdir. sonra onlari hashmape eklersin. string.charAt(i).isLetter() ya da string.charAt(i).isDigit() le yazdirilcak karakterleri belirlersin. for loop icine if (string.charAt(i) != ',') koyabilirsin mesela. sonra bunu bi kere daha tekrarlatirsin 2. kelime icin. rakam kismi isDigit() le kolay zaten.
Mesaj tarihi:
ehue yok geyik olsun diye diyorum. denedim oyle sirf ayni mi diye, her sene anyi projeyi veriyor sanirim. iyi adamdir.

String [] pieces = string.split(" ,"); falan dene ama
×
×
  • Yeni Oluştur...