Autor Thema: getProperCaseString  (Gelesen 3580 mal)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
getProperCaseString
« 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?
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Sven Hasselbach

  • Senior Mitglied
  • ****
  • Beiträge: 316
  • Geschlecht: Männlich
    • blog@hasselba.ch
Re: getProperCaseString
« Antwort #1 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...

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: getProperCaseString
« Antwort #2 am: 06.06.12 - 15:56:00 »
oh, ist ja noch gruseliger
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: getProperCaseString
« Antwort #3 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
Grüßle Toni :)

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: getProperCaseString
« Antwort #4 am: 06.06.12 - 16:08:49 »
Der angestrebte Zweck geht sicher in die Richtung "beseitigungVon Tippfehlern" (und das nach englischen Regeln).

Bernhard

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: getProperCaseString
« Antwort #5 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
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: getProperCaseString
« Antwort #6 am: 06.06.12 - 16:55:46 »
Schon klar, Ulrich - aber die Entwickler hatten eben eine andere Intention.

Bernhard

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: getProperCaseString
« Antwort #7 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
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: getProperCaseString
« Antwort #8 am: 06.06.12 - 19:09:17 »
... ja - warum nicht -  ;D
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz