2016-04-19 5 views
0

ersetzt wird Ich habe eine Zeichenkette "October.29.2009 11:00 a.m." Ich möchte einen generischen Code schreiben, der die Zeit durch Leerzeichen ersetzt. Ich habe den folgenden Code versucht:Wie die letzte Ziffer nur in einer Zeichenkette mit Hilfe der Skala

{ 
    val date="October.29.2009 11:00 a.m." //time may be any value 
    date.replace("a.m.","").replace("p.m.","") 
} 

Above-Code kann nur vormittags und nachmittags ersetzen. Ich muss auch die Zeit ersetzen.

Antwort

0

können Sie regex wie die

^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$ 
+0

regex ist n ot arbeitet mit replace() – user6207861

+0

Regex arbeitet mit replaceAll() oder replaceFirst() Methoden. Nicht mit replace() Methode – Amriteya

+0

Ich habe folgenden Code versucht, aber gibt einen Fehler "strain, actualregex erwartet" val str = "October.29.2009 11:00 a.m." str.replace ("^ ([0-9] | 0 [0-9] | 1 [0-9] | 2 [0-3]): [0-5] [0-9] $" .r , "") – user6207861

1

verwenden Haben Sie die Zeichenfolge versucht zu splitten. Verwenden Sie Folgendes:

Das erste Element des zurückgegebenen Arrays gibt Ihnen das Datum ohne Zeitangabe.

+0

aber str kann auch wie "Oktober. 29. 2009 11: 00 Uhr" sein. – user6207861

+0

Wenn das der Fall ist, könnten Sie die Regex verwenden. Sie könnten die Regex-Funktion verlassen, wenn ein bestimmtes Muster vorhanden ist, zu dem Ihre Zeichenfolge gehört. Wenn es in Bezug auf sein Muster extrem zweideutig ist, dann ist Regex der Weg zu gehen – Amriteya

+0

Ich weiß nicht, wie Regex mit replace() zu verwenden. :( – user6207861

0

Ist Ihre Zeit immer mit führenden Nullen?

07:08 

Dann

myString.reverse.substring(countYourCharsAndDigits).reverse 

verwenden oder einen regulären Ausdruck verwenden, der den ersten Teil übereinstimmt, dass Sie in interestet sind, und den Rest und schreiben Sie es wie

def dateExtractor(date:String) = { 
    val MatchExpression = "('hereTheRegExForTheInterestingPart')('regExForRest)".r 
    val MatchExpression(myNewString,rest) = date 
    myNewString 
} 

die ( und ) wird benötigt für die Matchen die ' nicht

Verwandte Themen