Code Monkey home page Code Monkey logo

capitalize-utils's Introduction

capitalize-utils

A little Java class to capitalize strings like text-transform in CSS

  1. pt-br
  2. en-us, only how to use

Introdução

Em uma conversa com O Bermuda, ele disse que não havia uma anotação ou um método em StringUtils no Spring que fizesse com que "A Primeira Letra De Cada Palavra Fosse Maiúscula", o que é conhecido por capitalize. Como vim de frontend, isso era algo banal, pois em CSS temos o 'text-transform: capitalize' e pensei que era algo comum em quaisquer linguagens ou frameworks.

Para a surpresa, a biblioteca StringUtils possui um método capitalize que apenas transforma apenas o primeiro caractere para maiúsculo, o que não nos é útil para o seguinte problema:

Arrumar nomes para a inserção no banco de dados: fulano da silva sauro => deve virar => Fulano da Silva Sauro

Como em iniciei um projeto para geração de relatórios em testes de segurança e era necessário o nome, eu já havia feito algo para resolver o problema e passei ao meu amigo O Bermuda. Por influência dele, tentei reescrever o código usando Lambda Expression e classe Optional para validar o tão temido NullPointerException, mas... O código com Lambda Expression ficou mais lento do que a maneira antiga e eu 're re'escrevi o código, conseguindo performance equivalente ou superior a forma antiga. E agora vou testar diversos nomes afim de descobrir a melhor implementação

Código exemplo

String nomeCompleto = "fuLaNO Costa E Pinto da siLva lIMA de Beltrano";
System.out.println(Capitalize.capitalizeByWords(nomeCompleto));
// Fulano Costa E Pinto Da Silva Lima De Beltrano

// Putz cara, não é isso que eu quero, olha o Da, De, E que coisa feia...

System.out.println(Capitalize.brazillianCapitalize(nomeCompleto));
// Fulano Costa e Pinto da Silva Lima de Beltrano
// Agora sim, Selo Hipster de Qualidade

Using Capitalize

To use Capitalize methods, only add the dependency on your project and write some code. Capitalize have five methods (for hour) to capitalize your strings:

Warning: All simbols, except '.' (dot) are convert to *Case in methods. This warning is because the files have extension, and dot broke the chain of string in Sneak, Slug and CamelCase

  • Capitalize.capitalizeByWords(String): This method capitalize every word in String, splitting by tab(\t) and space(" "). I decide create this method to fix brazilian names, because the names on web forms are scary, but this method don't resolve all cases in brazilian names
String nomeCompleto = "fuLaNO Costa E Pinto da siLva lIMA de Beltrano";
System.out.println(Capitalize.capitalizeByWords(nomeCompleto));
// Fulano Costa E Pinto Da Silva Lima De Beltrano
  • Capitalize.brazilianCapitalize(String): The same case of capitalizeByWords, but replace some cases of 'conectores' (connectors in english) to correctly way:
String nomeCompleto = "fuLaNO Costa E Pinto da siLva lIMA de Beltrano";
System.out.println(Capitalize.brazillianCapitalize(nomeCompleto));
// Fulano Costa e Pinto da Silva Lima de Beltrano
  • Capitalize.toPascalCase(String): I don't research much to .*Case, but I know this .*Case as PascalCase. The first letter of all words are capitalize and spaces and simbols are converted to none(""):
String name = "FULANO DA SILVA SAURO de moura";
System.out.println(Capitalize.toPascalCase(name))
// FulanoDaSilvaSauroDeMoura
  • Capitalize.toCamelCase(String): Same warn of toPascalCase. Only first word of string are not capitalized.
String name = "FULANO DA SILVA SAURO de moura";
System.out.println(Capitalize.toPascalCase(name))
// fulanoDaSilvaSauroDeMoura
  • Capitalize.toSneakCase(String): Same warn of toPascalCase. Convert spaces, simbols and other cases do sneak_case.
String name = "FULANO DA SILVA SAURO de moura";
System.out.println(Capitalize.toPascalCase(name))
// fulano_da_silva_sauro_de_moura
  • Capitalize.toSlugCase(String): Same warn of toPascalCase. Convert spaces, simbols and other cases do slug-case.
String name = "FULANO DA SILVA SAURO de moura";
System.out.println(Capitalize.toPascalCase(name))
// fulano-da-silva-sauro-de-moura

capitalize-utils's People

Contributors

g4rcez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.