Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung - XPages => Thema gestartet von: eknori am 06.06.12 - 14:32:43

Titel: getProperCaseString
Beitrag von: eknori am 06.06.12 - 14:32:43
Meine Kollegin ist heute auf eine lustige Sache gestossen. Lustig nur, weil wir hier alle das verhalten der Funktion ein bisschen komisch finden.

Ein String z.B. firstName soll in einen ProperCase String umgewandelt werden. Ich habe in der API bei den com.ibm.commons.util.StringUtil die Methode getProperCaseString(java.lang.String sample) gefunden

Code
getProperCaseString(java.lang.String sample)
          Returns a string whose first letter is a Capital letter, and a space is inserted anywhere an upper case letter exists in the existing string.

Nachdem meine Kollegin die Methode eingebaut hatte, ging plötzlich gar nichts mehr. Wer lesen kann ist hier klar im Vorteil. heisst es doch in der Doku "and a space is inserted anywhere an upper case letter exists in the existing string"

Also wird aus einen firstName ein First Name. Works as designed, aber wo ist der Sinn?
Titel: Re: getProperCaseString
Beitrag von: Sven Hasselbach am 06.06.12 - 15:47:12
Die Doku stimmt aber nicht:

Unter 8.5.2 & 8.5.3 wird aus dem Beispiel-String "thisIsATest" ein "This is a test" bzw. "firstName" wird zu "First name".
Die Großbuchstaben werden also zusätzlich noch klein gemacht...
Titel: Re: getProperCaseString
Beitrag von: eknori am 06.06.12 - 15:56:00
oh, ist ja noch gruseliger
Titel: Re: getProperCaseString
Beitrag von: ata am 06.06.12 - 15:58:08
... aber vermutlich wollte der Entwickler das genau so - it's not a bug - it's a feature  ;D
Titel: Re: getProperCaseString
Beitrag von: koehlerbv am 06.06.12 - 16:08:49
Der angestrebte Zweck geht sicher in die Richtung "beseitigungVon Tippfehlern" (und das nach englischen Regeln).

Bernhard
Titel: Re: getProperCaseString
Beitrag von: eknori am 06.06.12 - 16:35:12
In diesem Fall geht es darum, sicherzustellen, daß der erste Buchstabe ein CapitalLetter ist. Ist Java und Java ist da ziemlich pingelig.

@Toni: Ja, wird ein works as designed sein. ich finde nur keinen wirklichen Einsatzzweck dafür
Titel: Re: getProperCaseString
Beitrag von: koehlerbv am 06.06.12 - 16:55:46
Schon klar, Ulrich - aber die Entwickler hatten eben eine andere Intention.

Bernhard
Titel: Re: getProperCaseString
Beitrag von: eknori am 06.06.12 - 16:59:51
Hier mal meine schnelle Lösung

Code
	
                String str= "daSistEinTest";
		char[] stringArray = str.toCharArray(); 
		stringArray[0] = Character.toUpperCase(stringArray[0]); 
		str= new String(stringArray);
		
		System.out.println(str);

Kommt dann DaSistEinTest raus; erster Buchstabe GROSS und der Rest unverändert
Titel: Re: getProperCaseString
Beitrag von: ata am 06.06.12 - 19:09:17
... ja - warum nicht -  ;D