Java konusunda biraz beceriksizim, hatta o kadar beceriksizim ki, herkesin küfrettiği Eclipse - Ganymede'i hiç bir sıkıntı duymadan kullanıyorum. (Sıkıntı olmaması Eclipse'in başarısı değil, benim dangoz olup sıkıntı olup olmadığını anlayamamamdan kaynaklanıyor muhtemelen.)

Sorunum şu ki, ben bi şeyleri dosyadan okuyayım istiyorum ancak nasıl "#" karakterine kadar okutup sonra durup bir sonraki # sembolüne kadar okuyacağını bulamadım, readLine komutuyla satır satır okuyabiliyorum, o konuda sorun yok ancak ben satır satır okumak istemiyorum dediğim gibi, # sembolüyle ayrılmış stringler var, onları ayrı ayrı okumak istiyorum.

Ali#Güçlü#42#İzmir#Türkiye#Bakkal
Fatma#Sağlam#19#İstanbul#Türkiye#Öğrenci
John#Green#26#Florida#ABD#Kurye

tarzı bir notepad dosyası var elimde ve şöyle bir şey yazdım (readLine kullanarak);

public class Main {

public static void main(String[] args){

BufferedReader oku;
BufferedWriter yaz;
File dosya=new File("d:\\emlaklar.txt");
String s="";
try{
oku=new BufferedReader(new FileReader(dosya));
while(oku.ready()){
s+= oku.readLine() + "\r\n" ;
System.out.printf(s);
} oku.close();
}catch(Exception e){
e.printStackTrace();
}
}
}

şunu evirip çevirip tek tek okumamı sağlayacak olanlara, Allah, Windows 7'nin kaynak kodlarını bahşetsin.

Edit: Ha bi de orda, yaş sayı olarak girilmiş ancak string'e atıyorum, bu bi sorun oluşturur mu mesela yaşa göre sıralamak istediğimde?

 

eğer bulursam geçen yıldan kalma kodlarım var aynıları, işine yarar (şimdi düşünüp sana program yazacak durumda değilim de arşi, bağışla). ama onun dışında guiden anlayan varsa da bana yardım edebilir, paint yapmam isteniyor. lanet, lanet, lanet.

damlanin

Üzerinde bulunduğun satırın tüm karakterlerini bir arraye at. {A,l,i,#,G.....} gibi.
Ardından isEqual ile tek tek karakterleri kontrol et. # bulduğunda, arrayin oraya kadar olan karakterlerini yeni bir string e ata. Bir de önceki # in nerde olduğunu tutmak için bir integer kullan.

yani;
array'in üstünden geçersin, # bulursa, öncekileri bir string e yazdırırsın. Ve bulduğun # sembolünün arrayin kaçıncı elemanı olduğunu bir integerda tutarsın. Döngü devam eder ve sonraki # işaretine gelirsin. Bu sefer önceki # işaretinin bulunduğu yerden üstünde bulunduğuna kadar olan karakterleri bir string e atarsın.
Anlatamadım ama bu yöntem işe yarar :D

fatalstorm

Müjde!, String için seperate metodu varmış!

s+= oku.readLine() + "\r\n" ;
Array satir1 = s.split("#");

Edit: Yazarken programlama dilleri birbirine karışmış.

String[] satir1 = s.split("\\#");

fatalstorm

Yok olmadı beceremedim, sağını solunu kurcaladım ama baya?

3 atli 7 katli

her bir satırı okuduktan sonra okudugn her satır icin

Stringtokenizer st = new stringtokenizer(line, "#");

diyip

while(st.hasmoretokens())
system.out.println(st.nexttoken());

seklinde ekrana yazdırabilirsin.

java

String [] satir1 = s.split("#");
for(String satir : satir1)
System.out.print(satir);

yazmasam olmazdı.

damlanin
1

mobil görünümden çık