In Java come si fa a titolo di caso una stringa pur conservando alcune abbreviazioni comuni

StackOverflow https://stackoverflow.com/questions/1654066

  •  11-09-2019
  •  | 
  •  

Domanda

Ci sono molti modi per Titolo caso in java .

Ma come si fa a prevenire alcune delle abbreviazioni più comuni di essere convertito. Per esempio:

System.out.println(makeProper("JAMES A SWEET");
System.out.println(makeProper("123 MAIN ST SW");

James A Sweet
123 Main St Sw

SW dovrebbe rimanere maiuscolo in quanto è l'abbreviazione di sud-ovest.

È stato utile?

Soluzione

È necessario un qualche tipo di dizionario che contiene le parole che non devono essere capitalizzati. Si potrebbe utilizzare un HashSet per questo. Qualcosa in questo senso:

Set<String> whiteList = new HashSet<String>();
whiteList.add("SW");
whiteList.add("NW");
// ...
for (String word : phrase.split()) {
    if (!whiteList.contains(word)) {
        makeProper(word);
    }
}

Altri suggerimenti

Non c'è modo standard di fare una cosa del genere.

Si potrebbe venire con il proprio metodo e una serie di abbreviazioni che non si desidera "corretto" ed escludere fa dalla trasformazione

L'unico modo ho potuto vedere è:

1. split your input text into words  
2. iterate through words  
      2.a  if word is a abbreviation then 
           2.a.1   do nothing or convert to uppercase, whatever is required  
    2.b  otherwise  
           2.b.1   call [makeProper][1] or [capitalize][2]  

makeProper o capitalizzare
, ovviamente, è necessario creare un metodo che deciderà se la parola è l'abbreviazione o no :) come su come mantenere tutti sanno abbreviazione in un file, e la loro lettura.

Apache Commons Lang- contiene WordUtils.capitalizeFully che ho usato per capitalizzare le stringhe senza problemi. Spero che consente di risparmiare tempo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top