Sadece uygun yöntemi kullanın: String#split()
.
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
Bunun normal bir ifade aldığını unutmayın, bu nedenle gerekirse özel karakterlerden kaçmayı unutmayın .
Orada ters eğik çizgi: özel anlamlarla 12 karakter \
, şapka ^
, dolar işareti $
, nokta veya nokta .
, dikey çubuk veya boru sembol |
, soru işareti ?
, yıldız veya yıldız *
, artı işareti +
, açılış parantezi (
kapatma parantezi )
, ve açılış köşeli ayraç [
, açılış kıvırcık ayraç {
, Bu özel karakterlere genellikle "metakarakterler" denir.
Yani, regex'te .
" herhangi bir karakter " anlamına gelen nokta / noktaya bölmek istiyorsanız, özel karakterden kaçmak için ters eğik çizgiyi\
kullanın split("\\.")
veya böyle değişmez karakterleri temsil etmek için karakter sınıfını[]
split("[.]")
kullanın Pattern#quote()
veya tüm dize gibi kaçmak split(Pattern.quote("."))
.
String[] parts = string.split(Pattern.quote(".")); // Split on period.
Dizenin belirli karakter (ler) içerip içermediğini önceden test etmek için kullanın String#contains()
.
if (string.contains("-")) {
// Split it.
} else {
throw new IllegalArgumentException("String " + string + " does not contain -");
}
Bu normal bir ifade almaz. Bunun için String#matches()
kullanın.
Bölünmüş karakteri sonuçta kalan bölümlerde tutmak istiyorsanız, olumlu bakış açısını kullanın . Bölünmüş karakterin sol tarafta görünmesini istiyorsanız ?<=
, desene grubun ön ekini ekleyerek pozitif görüş arkası kullanın .
String string = "004-034556";
String[] parts = string.split("(?<=-)");
String part1 = parts[0]; // 004-
String part2 = parts[1]; // 034556
Bölünmüş karakterin sağ tarafta olmasını istiyorsanız ?=
, desende grubun önüne ön ek koyarak pozitif ileriye bakın .
String string = "004-034556";
String[] parts = string.split("(?=-)");
String part1 = parts[0]; // 004
String part2 = parts[1]; // -034556
Ortaya çıkan parçaların sayısını sınırlamak isterseniz, istediğiniz sayıyı split()
yöntemin 2. bağımsız değişkeni olarak sağlayabilirsiniz .
String string = "004-034556-42";
String[] parts = string.split("-", 2);
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556-42