[JAVA] Del av string till int?

Permalänk
Medlem

[JAVA] Del av string till int?

Tjena

Har lite problem med att göra om en string till en int.

Nu är det så att jag inte vill ha hela stringen utan bara det första talet.
Tanken är att man i stringen ska skriva in tid i formatet HH:MM:SS (Del av en uppgift...) och sedan ska jag ta ut timmarna som en int.

Låter så jäkla enkelt men får inte rätt på det >.<

EDIT: Och varför fungerar inte denna koden:

String sHours = (Timestring.charAt(0) +Timestring.charAt(1));

? Får felet: inconvertible types required: java.lang.String found: int
Timestring är ju en string inte en int?

Permalänk
Medlem

Du får en char som returtyp av charAt(), en char kan ses som ett värde mellan 0 och 65535, så det finns en risk att den utför en addition av dessa numeriska värden varpå slutprodukten blir en int med det sammanlagda värde av dina två chars.

Du bör testa att explicit bygga strängar av dem innan du konkatenerar dem.
Alternativt det mer fördelaktiga valet är att använda dig av subString(StartIndex,SlutIndex) då denna returnerar en Sträng direkt.

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem
Skrivet av Gnejs:

Alternativt det mer fördelaktiga valet är att använda dig av subString(StartIndex,SlutIndex) då denna returnerar en Sträng direkt.

Löste det med substring och parseInt.
Tack så mycket för hjälpen!

Permalänk
Medlem
Skrivet av FlugHatt:

Löste det med substring och parseInt.
Tack så mycket för hjälpen!

Inga problem

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem

Alternativ lösning (möjligen en aning ineffektiv med större strängar):

String testString = "18:50:30"; Integer.parseInt(testString.split(":")[0]);

Kommer ge 18.

Visa signatur

Dator: MacBook Pro 16 M1 Max
Tangentbord: Totem, Sweep, Kyria
Layout: Colemak-DH + Canary