[Java] Beste manier: zoeken naar cijfer/letter in String

Pagina: 1
Acties:
  • 195 views sinds 30-01-2008
  • Reageer

  • bvp
  • Registratie: Maart 2005
  • Laatst online: 16-04 19:03
Even een kleine probleemstelling voor het zoeken in een String.

Ik ga hier van een willekeurige string uit waarvan ik op basis van hoe de string is, 2 verschillende afhandelingen wil doen:

1: De String begint met een cijfer > Doe afhandeling 1
2: De String begint met een letter > Doe afhandeling 2

Ik had zelf bedacht:
1. Pak het eerste character en maak hier een Integer van met new Integer('eerste char');

1. Gaat dit goed > doe afhandeling 1
2. Gaat dit niet goed > Vang de NumberFormatException af en doe hierin afhandeling 2.

Dit lijkt mij dus geen juiste manier van exception-handling en dus een lelijke manier om dit zo te doen.
Waarschijnlijk is het antwoord heel simpel maar ik zie het nu ff niet.
Hoe zouden jullie dit doen?

  • whoami
  • Registratie: December 2000
  • Laatst online: 20-04 18:20
Je moet nooit exceptions gebruiken om de flow van je applicatie te gaan bepalen. (Je veronderstelling is dus goed).

Heb je in Java geen method (member method van string of char bv), die checkt of een character een nummer is of niet ?

https://fgheysels.github.io/


  • Jabbah
  • Registratie: Februari 2004
  • Laatst online: 20-04 08:49
Kan je niet kijken wat de ascii waarde van het eerste karakter is?
Als die tussen 48 en 57 ligt, dan heb je een cijfer. In de andere gevallen een letter.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01:08

.oisyn

Moderator Devschuur®

Demotivational Speaker

Character.isDigit()

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • RedFox
  • Registratie: November 2001
  • Laatst online: 22:17

RedFox

Heb je een OV ofzo?

Je kan toch gewoon Character.isLetter(char) gebruiken om te kijken of het een letter is?

edit: spuit 11....of isDigit ja..

[ Voor 19% gewijzigd door RedFox op 03-01-2006 11:43 ]

You are not special. You are not a beautiful or unique snowflake. You're the same decaying organic matter as everything else.


  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Je hebt ook nog Character.isDigit() die je kunt gebruiken om het zonder Exceptions te doen.
Java:
1
if (woord.charAt(1).isDigit()) ...

edit: idd iets te snel, zie Copyman en de rest :)

[ Voor 15% gewijzigd door zwippie op 03-01-2006 11:48 ]

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


  • Copyman
  • Registratie: Januari 2001
  • Laatst online: 16-04 19:34

Copyman

Dode muis

Inderdaad

Java:
1
2
3
4
5
6
if(Character.isDigit(str.chartAt(0))) {
    // afhandeling 1
}
else {
    // afhandeling 2
}


Hier was ik toevallig ook mee bezig vorige week. :P

Spuit 144... :+

[ Voor 6% gewijzigd door Copyman op 03-01-2006 11:50 ]

Zeer belangrijke informatie: Inventaris


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01:08

.oisyn

Moderator Devschuur®

Demotivational Speaker

zwippie: dat kan niet, Character.isDigit is een static methode waarbij je de char als parameter moet geven.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • JnX
  • Registratie: Februari 2001
  • Laatst online: 18-01 22:08

JnX

zwippie schreef op dinsdag 03 januari 2006 @ 11:44:
Je hebt ook nog Character.isDigit() die je kunt gebruiken om het zonder Exceptions te doen.
Java:
1
if (woord.charAt(1).isDigit()) ...
Java:
1
if (woord.charAt(0).isDigit()) ...


Correctie :)

Oops, nog fout. Zie Copyman.

[ Voor 7% gewijzigd door JnX op 03-01-2006 11:49 ]


  • bvp
  • Registratie: Maart 2005
  • Laatst online: 16-04 19:03
ok thnx all.
Ik dacht toch al dat het antwoord simpel was :o |:(

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 20:13

Robtimus

me Robtimus no like you

En anders heb je ook nog
Java:
1
2
3
4
5
6
char c = str.charAt(0);
if (c >= '0' && c <= '9') {
    // getal
} else {
    // geen getal
}
Werkt ook in andere programmeertalen zoals C(++).

More than meets the eye
There is no I in TEAM... but there is ME
system specs

Pagina: 1