Devo ordinare un ArrayList fatta da Stringhe che contengono valori come, ad esempio, questi:

233f
233a
1210
1408
233
233b
1513
572k
572g
572
1839
1838

vorrei che dopo l'ordinamento la lista fosse questa:

1839
1838
1513
1408
1210
572k
572g
572
233f
233b
233a
233

Ho provato questo codice:

Collections.sort(visuraList, new ComparatorForCodice());

dove la classe comparetor è questa:

codice:
public class ComparatorForCodice implements Comparator {

	public int compare(Object arg0, Object arg1) {
		int codice0 = 0;
		String codice0_ = ((RichiestaVisuraBean) arg0).getCodice();
		try {
			codice0 = Integer
					.parseInt(((RichiestaVisuraBean) arg0).getCodice());
		} catch (Exception e) {
			System.out
					.println("codice0 non numerico: " + e.getMessage());
			//se trovo una lettera nel codice la eliminio dalla comparazione
			codice0 = Integer
					.parseInt(codice0_.substring(0, codice0_.length()-1));
		}

		int codice1 = 1;
		String codice1_ = ((MyBean) arg1).getCodice();
		try {
			codice1 = Integer
					.parseInt(((MyBean) arg1).getCodice());
		} catch (Exception e) {
			System.out
					.println("codice1 non numerico: " + e.getMessage());
		//se trovo una lettera nel codice la eliminio dalla comparazione
			codice1 = Integer
					.parseInt(codice1_.substring(0, codice1_.length()-1));
		}

		return (codice0 > codice1) ? 1 : 0;
	}

}
ma la lista non risulta ordinata come voglio io, come posso fare?