Guava


Tratando Strings de forma fácil


Cenário 1

Com uma entrada de dados:
"Harry", null, "Ron", null, "Hermione"

Como chegamos em:
"Harry; Ron; Hermione"


Joiner


Joiner joiner = Joiner.on("; ").skipNulls();
joiner.join("Harry", null, "Ron", null, "Hermione");


cENÁRIO 2

3 Inteiros como entrada:
1,5,7

Como chegamos em:
"1,5,7"



Joiner

Joiner.on(",").join(Arrays.asList(1, 5, 7));


cenário 3


Com uma entrada de dados:
"Harry", null, "Ron", null, "Hermione"

Como chegamos em:
"Harry; Alex; Ron; Alex; Hermione"



JOINER 

Joiner joiner = Joiner.on("; ").useForNull("Alex");
joiner.join("Harry", null, "Ron", null, "Hermione");


StringBUILDER

Nos casos onde não há controle sobre  o input
final String[] input = new String[] {"dave", "john"};
final Joiner joiner = Joiner.on(",");
StringBuilder builder = joiner.appendTo(builder, input);


STRINGBUILDER

Aplicando uma restrição no joiner
final String[] input = new String[]{"dave", "john", null, "dan"};
final Joiner joiner = Joiner.on(",").skipNulls();
StringBuilder builder = joiner.appendTo(builder, input);
builder.toString();


Cool Stuff

Vamos com o joiner 
montar os parametros de um HTTP GET
final Map input = new HashMap() {{
            put("param", "v");
            put("p2", "v2");
            put("q", "java");
        }};

final String result = Joiner.on("&")
        .withKeyValueSeparator("=")
        .join(input);
                    
        //p2=v2&param=v&q=java


CENÁRIO 4


Com uma entrada de dados:
"dave,john,matt"

Como chegamos em:
[dave, john, matt]



splitter 

Splitter.on(",").split(stringToSplit);


CENÁRIO 5


Com uma entrada de dados:
"dave ,john,, matt" 

Como chegamos em:
[dave, john, matt]



SPLITTER 

final Iterable result = Splitter.on(",")
                .omitEmptyStrings()
                .trimResults()
                .split(stringToSplit);


Strings


  • nullToEmpty
  • repeat
  • commonPrefix
  • commonSuffix
  • padEnd

CharMatcher

Alguns CharMatchers prontos:

ANY - DIGIT - NONE
JAVA_LETTER - JAVA_LOWER_CASE
JAVA_UPPER_CASE - WHITESPACE
JAVA_DIGIT - ASCII - INVISIBLE
SINGLE_WIDTH - JAVA_LETTER_OR_DIGIT



CENÁRIO 6


Conta a quatidade de letras ou digitos na string:
"M4U 20015"


CHArMATCHER 


CharMatcher letterOrDigitMatcher = CharMatcher.JAVA_LETTER_OR_DIGIT;
letterOrDigitMatcher.countIn("M4U 20015");


MATCHING

letterOrDigitMatcher.matchesAllOf("AB12"); //true
letterOrDigitMatcher.matchesAllOf(" AB12 "); //false


NOT MATCHING

letterOrDigitMatcher.matchesNoneOf("_?=)(") //true



CharMatcher.WHITESPACE

Removendo espaços em branco
whiteSpaceMatcher.removeFrom("Nos <3 M4U") //Nos<3M4U



CharMatcher.DIGIT

Retendo todos os números da frase:

digitMatcher.retainFrom("numero 1, numero 2, nuemro 3") //123



CharMatcher.DIGIT

Achando o indice do primeiro digito na palavra

CharMatcher.DIGIT.indexIn("blink182") //5


REGEX FACIL


CharMatcher largeAtoZ = CharMatcher.inRange('A', 'Z');
CharMatcher aToZ = CharMatcher.inRange('a', 'z').or(largeAtoZ);
aToZ.matchesAllOf("Alex") //true




Dúvidas?

Made with Slides.com