2015-10-15 70 views
0

需要幫助將僞代碼轉換爲代碼。計算字符串中兩個字符之間的總字符數 - JAVA

如果在那裏有數據佔用,程序將接收輸入並打印出來。 因此,如果「:」之後什麼也沒有,那就會失敗。在這個例子中,理由之後沒有任何東西,所以測試會失敗,所有其他人都會通過。

我認爲最好的方法是檢查冒號後面的數據,看冒號和下一個冒號前的文本總長度之間是否有多於一個字符(空格)。因此,從理性到狀態檢查將輸入的

//This would be the check betweek the reason colon and status colon - 6 chars //becuase of the word status 
if(lengthBetween_ReasoncolonAndStatusColon - 6 > 2){ 
    //PASS 
}else{ 
    //fail 
} 

格式

User Name: Chris Smith [email protected] Users Password: 123ABC Last Login Date: 2015/10/14 - 12:30AM Reason: Status: Online 

輸出

Username: PASS 
Password: PASS 
Last Login: PASS 
REASON: FAIL 
Status: PASS 

代碼

//This would be the check betweek the username and password - 14 chars //becuase of the words User Password 
if(lengthBetween_UsernameColonAndPasswordColon - 14 > 2){ 
    //PASS, there must be data here 
}else{ 
    //fail, no data 
} 

任何幫助都可以。一個好的起點是向我展示如何解決兩個「關鍵」元素之間的總字符。所以我可以用代碼的一些幫助來說,前兩個冒號對之間有X個字符,下一個對之間有X個字符,依此類推。

謝謝!

+0

您可以使用拆分()函數用冒號分割你的字符串,並把它放在一個列表/陣列。 http://stackoverflow.com/questions/10004066/java-splitting-an-input-file-by-colons – yogidilip

+0

我想到了這一點,但這會截斷冒號前的信息。 – TJF

+0

我想如果我說明這可能會起作用的字符丟失。 – TJF

回答

2

String API有很多內置的功能,你可以使用:

  • contains

    返回true當且僅當此字符串包含char值的指定序列。

  • indexOf

    返回此字符串指定的字符的第一次出現的中的索引。如果在此String對象所表示的字符序列中出現值爲ch的字符,則會返回第一個此類事件的索引(以Unicode代碼單位表示)。

  • trim

    返回字符串的一個副本,其中前後空白省略。

  • split

    拆分這串繞定正則表達式的匹配。

和他們一起玩!


如果你覺得你需要一個更強大的工具,請您從APACHE COMMONS檢查StringUtils

+0

斯普利特是要走的路。我給了這個鏡頭 – TJF

1

您可以用Java

String s = "rtabcedaf"; 
int count = s.lastIndexOf('a') - s.indexOf('a') - 1; //returns 4 

希望這足以讓你下手使用indexOflastIndexOf方法從String類。

+0

這會工作更多,然後兩個'一'的實例?這看起來像是第一個也是最後一個。 – TJF

+0

@TJF我只是把你指向一個headstart – Abubakkar

+0

酷,我會看看如果事情不能用split()。謝謝。 – TJF

1

我希望這是你所需要的:

String s = "User Name: Chris Smith [email protected] Users Password: 123ABC Last Login Date: 2015/10/14 - 12:30AM Reason: Status: Online"; 
int lengthBetweenReasonAndStatus = s.indexOf("Status:") - s.indexOf("Reason:"); 

if(lengthBetweenReasonAndStatus - 6 > 2) { 
    System.out.println("Found"); 
} 
+0

這看起來像是一種做法。謝謝! – TJF

相關問題