2016-11-03 48 views
0

我試圖搜索字符串,例如Enter username:並搜索:並返回任何內容。因此,從上面的字符串它將返回Enter username,如果字符串是Enter: username或甚至Enter : username它將返回EnterEnter_「_」是空格字符。如何使用正則表達式搜索字符串,並在找不到時返回空值

最後,如果字符串是:Enter username然後它會返回一個空字符串

String s1 = "Enter username:"; 
String s2 = "Enter: username"; 
String s3 = ":Enter username"; 
Pattern p = Pattern.compile(":"); 
String[] expected1 = p.split(s1); //Expected return: "Enter username" 
String[] expected2 = p.split(s2); //Expected return: "Enter" 
String[] expected3 = p.split(s3); //Expected return: "" 
//ignoring the print statement 

我怎樣才能做到這一點?

+1

你只需要拆分( 「:」) –

+0

@KhalilM添加一個代碼示例,並且您在那裏獲得了良好的投票回答。 – Stewart

+0

@KhalilM:他可以使用[Pattern class's](https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html)自己的分割方法:'Pattern#split(字符串輸入)'如果他想要的話。 –

回答

1

在這裏,你去。

package com.client; 

import java.util.*; 

public class UpvoteMe { 
    public static void main(String[] args) { 
     List<String> list = Arrays.asList(
       "Enter username:", 
       "Enter: username", 
       ":Enter username"); 

     for (String s : list) { 
      String[] beforeColon = s.split(":"); 
      System.out.println(s + " -> '" + beforeColon[0] + "'"); 
     } 

    } 
} 

產地:

Enter username: -> 'Enter username' 
Enter: username -> 'Enter' 
:Enter username -> '' 
+0

作品像一個魅力感謝 – sabbibJAVA

1

你只需要使用返回數組的第一個(0)級元素:

String s1 = "Enter username:"; 
String s2 = "Enter: username"; 
String s3 = ":Enter username"; 
Pattern p = Pattern.compile(":"); 

String[] expected1 = p.split(s1); //Expected return: "Enter username" 
System.out.println(expected1[0]); 

String[] expected2 = p.split(s2); //Expected return: "Enter" 
System.out.println(expected2[0]); 

String[] expected3 = p.split(s3); //Expected return: ""  
System.out.println(expected3[0]); 
+0

作品非常感謝 – sabbibJAVA

相關問題