2017-03-03 33 views
5

Tôi có hai loại Chuỗi. Một là "abcdEfgh""abcd efgh". Điều đó có nghĩa là String đầu tiên có chữ hoa ở giữa và chuỗi thứ hai là có khoảng trắng. Vì vậy, bây giờ làm thế nào để tôi kiểm tra hai chuỗi mẫu trong java và làm cho hai dây.Cách tách các chuỗi trong java

String givenString; 

if (givenString.equals("abcdEfgh")) { 
    String str1 = abcd; 
    String str2 = Efgh; 
} else (givenString.equals("abcd efgh") { 
    String str1 = abcd; 
    String str2 = efgh; 
} 

Vui lòng cung cấp các giải pháp Cảm ơn

+1

Chuỗi class có một phương thức split. 'givenString.split (" ");' cho ví dụ khoảng trắng. –

+3

Và đối với ví dụ viết hoa, http://stackoverflow.com/questions/3752636/java-split-string-when-an-uppercase-letter-is-found – BackSlash

+2

Có thể trùng lặp của [Java: Tách chuỗi khi một chữ hoa tìm thấy] (http://stackoverflow.com/questions/3752636/java-split-string-when-an-uppercase-letter-is-found) –

Trả lời

5

Bạn có thể chia sử dụng regex \\s|(?=[A-Z])

  1. \\s là để đối phó với trường hợp của khoảng trắng.
  2. (?=[A-Z]) là dấu hiệu tích cực. Nó tìm thấy chữ hoa nhưng giữ dấu phân tách trong khi tách.

.

String givenString; 
String split[] = givenString.split("\\s|(?=[A-Z])"); 
String str1 = split[0]; 
String str2 = split[1]; 

cho cả hai trường hợp

trường hợp thử nghiệm 1

//case 1 
givenString = "abcdEfgh"; 
str1 = abcd 
str2 = Efgh 

trường hợp thử nghiệm 2

//case 2 
givenString = "abcd efgh"; 
str1 = abcd 
str2 = efgh 
+0

@RamanSahasi Cảm ơn bạn đã ans. Tôi nhận được, str1 = null và str2 = abcd trong trường hợp Kiểm tra 1 –

+0

@RamanSahasi trong Trường hợp Thử nghiệm 2, str1 = null & str2 = abcd –

+0

@PratibhaPatil Tôi đã biên soạn và thử nghiệm mã này. Vui lòng xem [phiên bản trực tuyến của các trường hợp thử nghiệm của tôi] (http://www.tutorialspoint.com/compile_java_online.php?PID=0Bw_CjBb95KQMWGdEbkJERm12dUU). –

2

Bạn cần phải kết hợp hai điều kiện sử dụng các toán tử OR |. Bạn đã tìm ra phân chia theo không gian đơn giản là "". Ví dụ chữ hoa được trả lời bởi Java: Split string when an uppercase letter is found

Ví dụ

String one = "abcdEfgh"; 
String two = "abcd efgh"; 

System.out.println(Arrays.toString(one.split(" |(?=\\p{Upper})"))); 
System.out.println(Arrays.toString(two.split(" |(?=\\p{Upper})"))); 

Output

[abcd, Efgh] 
[abcd, efgh] 
+0

Cảm ơn @ Adam, cả hai trường hợp trên và không gian màu trắng cùng một mẫu? –

+0

@PratibhaPatil Yep, như ví dụ của tôi cho thấy cùng một mẫu có thể được sử dụng – Adam

0

Giữ nó đơn giản, tìm kiếm không gian trong givenString thay vì trường hợp matchs nhạy cảm

if(givenString.indexOf(" ") != -1){ 
    System.out.println("The string has spaces"); 
}else{ 
    System.out.println("The string has NO spaces"); 
} 
Các vấn đề liên quan