Tuesday, 5 September 2017

java - reverse words of sentence

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class _String {
    static String  reverse_words_of_sentence(String s){
        Matcher m = Pattern.compile("(\\W+|_+)").matcher(s);

        ArrayList<String> list = new ArrayList<>();

        int start = 0;
        while(m.find()){
            list.add(0, s.substring(start, m.start()));
            list.add(0, m.group(1));
            start = m.end();
        }

        if(start < s.length())
            list.add(0, s.substring(start));

        return String.join("", list);
    }
}

styled using hilite.me

No comments:

Post a Comment