2012-07-23 21 views
20

Dize "Sihirli Kelime" yazdım. Sadece "Magic" i çıkarmak için dizgiyi kırpmalıyım. Aşağıdaki kodu yapıyorum.İlk kelimeyi almak için java dilinde bir dize kesin

String sentence = "Magic Word"; 
String[] words = sentence.split(" "); 

for (String word : words) 
{ 
    System.out.println(word); 
} 

Sadece ilk kelimeye ihtiyacım var. space yalnızca ilk kelimeyi almak için bir dizgiyi kesmek için başka yöntemler var mı?

+10

Yaylı firstWord = sentence.split (" ") [0]; ?? – Syam

+0

https://stackoverflow.com/questions/5067942/what-is-the-best-way-to-extract-the-first-word-from-a-string-in-java – AsfK

cevap

48
String firstWord = "Magic Word"; 
    if(firstWord.contains(" ")){ 
     firstWord= firstWord.substring(0, firstWord.indexOf(" ")); 
     System.out.println(firstWord); 
    } 
7

Şunları kullanabilirsiniz String 's bir boşluk gerçekten mevcut olması halinde, boş dize ile, uzay dahil uzay sonra her şeyi yerine, girdi olarak normal bir ifade alır replaceAll() yöntemi:

String firstWord = sentence.replaceAll(" .*", ""); 
2

kirli çözüm:

sentence.replaceFirst("\\s*(\\w+).*", "$1") 

Bu eşleşme, yani sadece bir koşul eklerseniz orijinal dize dönmek potansiyeline sahiptir:

if (sentence.matches("\\s*(\\w+).*", "$1")) 
    output = sentence.replaceFirst("\\s*(\\w+).*", "$1") 

Yoksa temiz bir çözümü kullanabilirsiniz:

String parts[] = sentence.trim().split("\\s+"); 
if (parts.length > 0) 
    output = parts[0]; 

iki çözüm yukarıdaki dizede boşluk olmayan ilk karakteri hakkında varsayımlar yapar dize eğer doğru olmayabilir, hangi kelimedir noktalamalarla başlar.

dikkat çekmek için:

String parts[] = sentence.trim().replaceAll("[^\\w ]", "").split("\\s+"); 
if (parts.length > 0) 
    output = parts[0]; 
+0

kopyası Bu yanıtı test edilmemiştir. Bir şekilde yanlışsa bir yorum gönderin. – nhahtdh

5

önceki cevabı modifiye.

String firstWord = null; 
if(string.contains(" ")){ 
firstWord= string.substring(0, string.indexOf(" ")); 
} 
else{ 
    firstWord = string; 
} 
0

Sen Bu->

String newString = "Magic Word"; 
    int index = newString.indexOf(" "); 
    String firstString = newString.substring(0, index); 
    System.out.println("firstString = "+firstString); 
+0

http://stackoverflow.com/questions/5067942/what-is-the-best-way-to-extract-the-first-word-from-a-string-in-java#35345069 adresine bakın. – GKislin

3

Bu olmalı kolay yolu deneyin olabilir.

public String firstWord(String string) 
{ 
return (string+" ").split(" ")[0]; //add " " to string to be sure there is something to split 
} 
3
String input = "This is a line of text"; 

    int i = input.indexOf(" "); // 4 

    String word = input.substring(0, i); // from 0 to 3 

    String rest = input.substring(i+1); // after the space to the rest of the line 
İlgili konular