Permalänk
Medlem

java string array med siffror

jo, det är så att jag har en String array och i varje index eller vad man ska säga ligger antingen ett ord eller ett heltal (i string form). Nu är frågan hur jag ska bära mig åt för att plocka ut dem o skilja dem åt. Skulle va trevligt med lite hjälp med detta.

Visa signatur

"Say unto thine own heart, I am mine own redeemer"
Don't touch me when I'm crazy of that airplane glue

Permalänk
Medlem

Du kan använda dig av funktionen parseInt i klassen Integer för att omvandla ett sträng-värde till ett int och samtidigt kolla om det överhuvudtaget går. Funktionen genererar ett NumberFormatException om det inte skulle gå (Om du t.ex. kontrollerar ett av dina ord).
Ett exempel:

try { int i = Integer.parseInt(strarr[0]); } catch (NumberFormatException nfe) { }

Permalänk
Medlem

tackar

Visa signatur

"Say unto thine own heart, I am mine own redeemer"
Don't touch me when I'm crazy of that airplane glue

Permalänk
Medlem

Att använda ett exception på detta sätt är riktigt fult. Ett exception ska bara kastas om något går fel, inte för att testa om något fungerar eller inte.
En bättre lösning på problemet skulle vara följande kod som jag hittade,

/** * Regular expression that matches any real number, with optional decimal point & digits * after the decimal, & optional positive (+) or negative (-) designation. */ static private final String REAL_NUMBER = "^[-+]?\\d+(\\.\\d+)?$"; ... //---------------------------------------------------------------------------------------------- /** * Determines if a string contains only digits, decimal points & hyphens. * @param string The string to check. * @return <code>True</code> if it has only digits, else <code>false</code>. * @since J2SE 1.4 */ static public boolean isNumeric(String string) { return string.matches(REAL_NUMBER); }

Altså kolla med hjälp av ett regexp för att se om det är ett tal eller inte och om det är ett tal då först köra parseInt.

/Viktor

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av vg132
Att använda ett exception på detta sätt är riktigt fult. Ett exception ska bara kastas om något går fel, inte för att testa om något fungerar eller inte.
...

Vilket koden också gör. Det går inte bra att parsa ett helt ord som en integer, därmed gick det snett.

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.