Springen naar inhoud

String gehele getallen naar array (java).


  • Log in om te kunnen reageren

#1

Flisk

    Flisk


  • >1k berichten
  • 1270 berichten
  • Moderator

Geplaatst op 17 augustus 2014 - 12:50

Ik heb een methode StringToArr geschreven die een string van enkele gehele getallen, gescheiden door een komma, omzet in een array van die gehele getallen. De methode werkt maar is in mijn ogen veel te omslachtig/groot. Iemand een idee hoe dit beter aan te pakken (dus minder code)?
 

public static int[] StringToArr(String rij){
		int i=0;
		int[] rijArr=new int[rij.length()];
		int plekRij=0;
		while(rij.indexOf(",")>0){
			rijArr[i] = Integer.parseInt(rij.substring(plekRij, rij.indexOf(",")));
			plekRij=rij.indexOf(",")+1;
			rij=rij.replaceFirst(",",".");
			i++; 
		}
		rijArr[i]=Integer.parseInt(rij.substring(plekRij, rij.length()));
		int[] rijArr2=new int[i+1];
		for(int m=0;m<i+1;m++){
			rijArr2[m]=rijArr[m];
		}
		return rijArr2;
	} 

Voorbeeld.
Input String:
"123,45,6,789"
Output Array:
[123, 45, 6, 789]

Veranderd door Flisk, 17 augustus 2014 - 13:01

Je leest maar niet verder want je, je voelt het begin van wanhoop.

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Math-E-Mad-X

    Math-E-Mad-X


  • >1k berichten
  • 2382 berichten
  • Ervaren gebruiker

Geplaatst op 17 augustus 2014 - 22:34

public static int[] StringToArr(String rij){
  String[] arrayOfStrings = rij.split(",");
  int[] arrayOfInts = new int[arrayOfStrings.length];
  for(int i=0; i<arrayOfStrings.length; i++){
     arrayOfInts[i] = Integer.parseInt(arrayOfStrings[i]);
  }
  return arrayOfInts
}

Veranderd door Math-E-Mad-X, 17 augustus 2014 - 22:36

while(true){ Thread.sleep(60*1000/180); bang_bassdrum(); }

#3

Flisk

    Flisk


  • >1k berichten
  • 1270 berichten
  • Moderator

Geplaatst op 17 augustus 2014 - 23:15

Merci! Er bestond dus al een methode split van de klasse String.

Uit puur interesse, zijn er ergens documenten waarin je kunt zien hoe dit soort methodes precies werken (met code etc)? Ik vond dit, maar dat is slechts een beschrijving.

Veranderd door Flisk, 17 augustus 2014 - 23:24

Je leest maar niet verder want je, je voelt het begin van wanhoop.

#4

Math-E-Mad-X

    Math-E-Mad-X


  • >1k berichten
  • 2382 berichten
  • Ervaren gebruiker

Geplaatst op 17 augustus 2014 - 23:48

Ja, als je Eclipse gebruikt dan kun je de code zien door eerst de method te selecteren en dan via de rechtermuisklik voor de optie 'Open declaration' kiezen. Dan opent Eclipse de file met de code voor je. Blijkbaar is die code dus ergens te vinden op je computer, maar ik zou niet weten waar. 


Btw, een iets nettere versie van de code die ik hierboven gaf gebruikt ook nog de trim() functie die eventuele spaties voor en na het getal verwijderd uit je string:

public static int[] StringToArr(String rij){
  String[] arrayOfStrings = rij.split(",");
  int[] arrayOfInts = new int[arrayOfStrings.length];
  for(int i=0; i<arrayOfStrings.length; i++){
     arrayOfInts[i] = Integer.parseInt(arrayOfStrings[i].trim());
  }
  return arrayOfInts
}
while(true){ Thread.sleep(60*1000/180); bang_bassdrum(); }





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures