Capitalizar Strings en Java
Capitalizar una palabra, significa poner la palabra con la primera letra en mayusculas y el resto en minusculas . (Vamos las reglas basicas del colegio para nombres propios y cosas asi....).
Por ejemplo, este texto: "antonio belmonte" , capitalizado seria "Antonio Belmonte".
Aqui os pongo una clase, con metodos estaticos para capitalizar Strings:
Para capitalizar cualquier frase entera o texto entero basta con llamar a la funcion capitalize (String text) a secas y esta utilizara los otros metodos para montar la frase.
Espero os sea de ayuda:
import org.apache.commons.lang.StringUtils;
public class FormatUtils {
public static String capitalize(String text){
if(!StringUtils.isEmpty(text)){
StringBuffer sbt= new StringBuffer();
String[] partialText = text.split(" ");
for(int i=0;i< partialText.length;i++){
if(partialText[i].contains("-")){ //composite words
sbt.append(capitalizeWithLine(partialText[i]));
}else{
sbt.append(capitalizeWord(partialText[i]));
sbt.append(" ");
}
}
return sbt.toString().trim(); //only for entire phrase
}
return text;
}
public static String capitalizeWord(String word){
if(!StringUtils.isEmpty(word)){
StringBuffer sb = new StringBuffer();
sb.append(String.valueOf(word.charAt(0)).toUpperCase());
if(word.length()>= 2)
sb.append(word.substring(1).toLowerCase());
return sb.toString();
}
return word;
}
public static String capitalizeWithLine (String wordWithLine){
StringBuffer res = new StringBuffer();
String[] partialTextWithLine = wordWithLine.split("-");
for(int r=0;r<partialTextWithLine.length;r++){
res.append(capitalizeWord(partialTextWithLine[r]));
if(r+1<partialTextWithLine.length) //not append to end
res.append("-");
}
return res.toString();
}
}
Para usarlo:
public static void main(String[] args) {
String texto = "marco-antOnio jueaIcoS del mOnte-Perdido";
String res = FormatUtils.capitalize(texto);
System.out.println(res);
}
Por ejemplo, este texto: "antonio belmonte" , capitalizado seria "Antonio Belmonte".
Aqui os pongo una clase, con metodos estaticos para capitalizar Strings:
Para capitalizar cualquier frase entera o texto entero basta con llamar a la funcion capitalize (String text) a secas y esta utilizara los otros metodos para montar la frase.
Espero os sea de ayuda:
import org.apache.commons.lang.StringUtils;
public class FormatUtils {
public static String capitalize(String text){
if(!StringUtils.isEmpty(text)){
StringBuffer sbt= new StringBuffer();
String[] partialText = text.split(" ");
for(int i=0;i< partialText.length;i++){
if(partialText[i].contains("-")){ //composite words
sbt.append(capitalizeWithLine(partialText[i]));
}else{
sbt.append(capitalizeWord(partialText[i]));
sbt.append(" ");
}
}
return sbt.toString().trim(); //only for entire phrase
}
return text;
}
public static String capitalizeWord(String word){
if(!StringUtils.isEmpty(word)){
StringBuffer sb = new StringBuffer();
sb.append(String.valueOf(word.charAt(0)).toUpperCase());
if(word.length()>= 2)
sb.append(word.substring(1).toLowerCase());
return sb.toString();
}
return word;
}
public static String capitalizeWithLine (String wordWithLine){
StringBuffer res = new StringBuffer();
String[] partialTextWithLine = wordWithLine.split("-");
for(int r=0;r<partialTextWithLine.length;r++){
res.append(capitalizeWord(partialTextWithLine[r]));
if(r+1<partialTextWithLine.length) //not append to end
res.append("-");
}
return res.toString();
}
}
Para usarlo:
public static void main(String[] args) {
String texto = "marco-antOnio jueaIcoS del mOnte-Perdido";
String res = FormatUtils.capitalize(texto);
System.out.println(res);
}
Comentarios
Publicar un comentario