Forum Discussion

shamane2000's avatar
shamane2000
Occasional Contributor
7 years ago

Groovy operations trim() and replace() seems to doesn't work in Soapui

I tried to get rid of whitespaces and newlines with groovy. But if I try this in Groovy, the resul is either a not trimed string, or an error (in the case of "replace()" )     String response = ...
  • avidCoder's avatar
    7 years ago

    Is this your actual response?

     

    String  response = " <blub>\r\nBlaaaah asd\r\n<Blä          />          asd       asdsad \r\n  asdasd      asdasd</blub>"

     

    Or is should look like this?

     

    String  response = " <blub>\r\nBlaaaah asd\r\n<Blä/>asdasdsad \r\n  asdasdasdasd</blub>"

     

    Please confirm on this.. And both replace() and  replaceAll() method works.. Trying putting correct regular expressions. See below code.

     

    String  response = " <blub>\r\nBlaaaah asd\r\n<Blä          />          asd       asdsad \r\n  asdasd      asdasd</blub>"
    log.info("before trim: " + response)
    log.info("After replace1: " + response.trim())
    log.info("After replace2: " + response.replaceAll("(\r\n)", ""))

     

    This is how output look like :-

     

    • Mon Feb 19 22:19:57 IST 2018:INFO:before trim: Blaaaah asd <Blä /> asd asdsad asdasd asdasd
    • Mon Feb 19 22:19:57 IST 2018:INFO:After replace1: Blaaaah asd <Blä /> asd asdsad asdasd asdasd
    • Mon Feb 19 22:19:57 IST 2018:INFO:After replace2: Blaaaah asd<Blä /> asd asdsad asdasd asdasd

     

    With replace() method:-

     

    String  response = " <blub>\r\nBlaaaah asd\r\n<Blä          />          asd       asdsad \r\n  asdasd      asdasd</blub>"
    log.info("before trim: " + response)
    log.info("After replace1: " + response.trim())
    log.info("After replace2: " + response.replace("(\r\n)", ""))

    Output:-

     

    • Mon Feb 19 22:26:21 IST 2018:INFO:before trim: Blaaaah asd <Blä /> asd asdsad asdasd asdasd
    • Mon Feb 19 22:26:21 IST 2018:INFO:After replace1: Blaaaah asd <Blä /> asd asdsad asdasd asdasd
    • Mon Feb 19 22:26:21 IST 2018:INFO:After replace2: Blaaaah asd <Blä /> asd asdsad asdasd asdasd

     

    And trim() in the sense you mean to remove the white spaces inside the String :-

     

    Like this:- <blub>Blaaaahasd<Blä/>asdasdsadasdasdasdasd</blub> ..

     

    To do this you need to use replaceAll() method like this:-

     

    String  response = " <blub>\r\nBlaaaah asd\r\n<Blä          />          asd       asdsad \r\n  asdasd      asdasd</blub>"
    log.info("After replace1: " + response.replaceAll("\\s+",""))

    Output look like this:-

     

    Mon Feb 19 22:33:48 IST 2018:INFO:After replace1: <blub>Blaaaahasd<Blä/>asdasdsadasdasdasdasd</blub>

     

    Hope, it resolve your problem. :)