2016-04-14 14 views
-1

böyle virgülle ayırarak değerlerle bir dize varsa:Bir dizenin bir parçası, parçanın konumuna (int) göre nasıl alınır?

String s = "zero, number one, two, three, number four, five"; 

Ve böyle 0 ile 5 arasında bir sayı verilir:

Sonra
int i = 3; 

nasıl alacağı

String newString = "three"; 

yöntem r sınırsız miktarda çalışması gerekir: yeni dizesi şu şekilde "üç" içerecektir, böylece değerle eşleşen string içindeki andom sözcükleri.

cevap

1

dize virgül içeriyorsa

String getString(String data, int position) { 
    return data.split(",")[position]; 
} 

Ve benzeri diyoruz, sen bir diziye virgülle bu dizeyi ayırabilirsiniz. Artık, 3 numaralı sayıyı belirteçli dizinize bir dizin olarak kullanabilirsiniz. Örneğin

:

//s is your string as you mentioned above 
String [] tokenized=s.split(","); 
//i is your number 3 as you mentioned above 
System.out.println(tokenized[i]); 
+0

Mükemmel, teşekkürler. –

+0

Yorumun, bunun neden yanlış olduğuna dair önceki bir cevaba bakın. – FredK

+0

Yorumlarınızı gördüm. Bir problem olduğunu düşünmüyorum. Bazı doğrulama koşulları oluşturabilir. Çok ciddi bir sorun değil :) – user43053534

0

Sen gibi bir işlev oluşturabilirsiniz:

String s = "zero, number one, two, three, number four, five"; 
String newString = getString(s, 3); 
+0

OP'ın orijinal dize ile Çalışmaz. İlk olarak, bu kod aslında en azından "konum" girdilerinin olup olmadığını kontrol edemez; Aksi takdirde bir istisna atar veya kullanıcı negatif bir sayı girer. İkincisi, regex bölme() yanlış geçti. Fonksiyona "3" iletirseniz, "üç" (baştaki boşluğa dikkat edin), "üç" değerini döndürmez. – FredK

İlgili konular