web-gelistirme-sc.com

İlk kelimeyi almak için Java'da bir dize kırpın

Bir String "Magic Word" var. Sadece "Magic" i çıkarmak için dizgiyi kırpmam gerekiyor .Aşağıdaki kodu yapıyorum.

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

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

Yalnızca ilk Word'e ihtiyacım var . Yalnızca space olduğunda ilk Word'ü almak için bir dize kırpmak için başka yöntemler var mı?

25
NaaN
  String firstWord = "Magic Word";
     if(firstWord.contains(" ")){
        firstWord= firstWord.substring(0, firstWord.indexOf(" ")); 
        System.out.println(firstWord);
     }
55
Jigar Joshi

Girdi olarak düzenli bir ifade alan String 's replaceAll() / yöntemini kullanabilirsiniz, eğer boşluk varsa, boşluk da dahil olmak üzere boşluktan sonraki her şeyi değiştirmek için:

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

Bu en kolay yol olmalı.

public String firstWord(String string)
{
return (string+" ").split(" ")[0]; //add " " to string to be sure there is something to split
}
8
Eric

önceki cevabı değiştirerek.

String firstWord = null;
if(string.contains(" ")){
firstWord= string.substring(0, string.indexOf(" ")); 
}
else{
   firstWord = string;
}
6
Maneesh Kumar
   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
3

Kirli bir çözüm:

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

Bu eşleşmediğinde orijinal dizgiyi döndürme potansiyeline sahiptir, bu yüzden sadece bir koşul ekleyin:

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

Veya daha temiz bir çözüm kullanabilirsiniz:

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

Yukarıdaki iki çözüm, dizgede boşluk olmayan ilk karakter hakkında varsayımlarda bulunur; dizge noktalama işaretleriyle başlarsa doğru olmayabilir.

Bununla ilgilenmek için:

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

Bunu deneyebilirsin->

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

Asla basit şeyleri daha karmaşık hale getirmemeliyiz. Programlama karmaşık şeyleri kolaylaştırmakla ilgilidir.

string.split ("") [0]; // ilk Kelime.

0
pasignature