Thursday, October 19, 2017

URLify in java 8 style functional flavor

 Write a method to replace all spaces in a string with '%20'

Instead of using str.replaceAll("\\s", "%20"), here is a function. This exercise is to help learning.

public String URLifyJava8(String str) {
return str.chars()
.mapToObj(c -> (char) c)
.flatMap(c -> Character.isWhitespace(c)
? "%20".chars().mapToObj(ch -> (char) ch) : Stream.of(c))
.of(StringBuilder::new, StringBuilder::append,
(r1, r2) -> {
return r1;
StringBuilder::toString, Collector.Characteristics.CONCURRENT));


  1. Excellent read, I just passed this onto a colleague who was doing a little research on that. And he just bought me lunch because I found it for him smile Thus let me rephrase that: Thank you for lunch!
    software development outsourcing company

  2. Don't know, haven't faced such an issue before, but hope that solution of your works well under any circumstances. Literally, I'm not into these things that much, just new to java (entirely new-new, to be frank), so I'm just hanging around with this soft, trying to understand how things work manually. I had no practice on that before, but my knowledge of fundamentals are clear, so I have filled all the gaps with this resource on learn java so I have some solid confidence on that. But when I've wandered in this thread and seen what things you guys are doing here, it's pretty impressive