1

I want to remove substring after 'Y' character. Final output should be EBAY in all three cases below. But output coming as EBAYSK.

object AndreaTest extends SparkSessionWrapper {
def main(args: Array[String]): Unit = {
  var string1= "EBAY-SK"
  var string2= "EBAY SK"
  var string3= "EBAY- SK"
  val finalString1 = string1.replaceAll("[-]/' '", "")
  val finalString2 = string2.replaceAll("[-]/' '", "")
  val finalString3 = string3.replaceAll("[-]/' '", "")
  println(finalString1)
  println(finalString2)
  println(finalString3)
}
1
  • 1
    You are replacing in code and asking substring,just google substring in scala Commented Jul 6, 2018 at 19:16

2 Answers 2

3

try this regex

val strings = List("EBAY-SK", "EBAY SK", "EBAY- SK", "EBAY", "EBAYEBAY")

val pattern = """([^.]*?Y).*""".r

strings.foreach(a => pattern.findAllIn(a).matchData foreach {
    m => println(a + " -> " + m.group(1))
})

output:

EBAY-SK -> EBAY
EBAY SK -> EBAY
EBAY- SK -> EBAY
EBAY -> EBAY
EBAYEBAY -> EBAY
Sign up to request clarification or add additional context in comments.

Comments

1

You either use a working pattern, i.e. replace - or \s (space) plus everything following it:

val finalString1 = string1.replaceAll("[-\\s].*", "")
val finalString2 = string2.replaceAll("[-\\s].*", "")
val finalString3 = string3.replaceAll("[-\\s].*", "")

Or just use substring instead of replaceAll:

val finalString1 = string1.substring(0, 4)
val finalString2 = string2.substring(0, 4)
val finalString3 = string3.substring(0, 4)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.