Gebruikersavatar
Flisk
Artikelen: 0
Berichten: 1.264
Lid geworden op: vr 02 mar 2012, 14:21

String gehele getallen naar array (java).

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)?

 

Code: Selecteer alles

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]
Je leest maar niet verder want je, je voelt het begin van wanhoop.
Gebruikersavatar
Math-E-Mad-X
Artikelen: 0
Berichten: 2.907
Lid geworden op: wo 13 sep 2006, 17:31

Re: String gehele getallen naar array (java).

Code: Selecteer alles

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
}
while(true){ Thread.sleep(60*1000/180); bang_bassdrum(); }
Gebruikersavatar
Flisk
Artikelen: 0
Berichten: 1.264
Lid geworden op: vr 02 mar 2012, 14:21

Re: String gehele getallen naar array (java).

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.
Je leest maar niet verder want je, je voelt het begin van wanhoop.
Gebruikersavatar
Math-E-Mad-X
Artikelen: 0
Berichten: 2.907
Lid geworden op: wo 13 sep 2006, 17:31

Re: String gehele getallen naar array (java).

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:

Code: Selecteer alles

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(); }

Terug naar “Informatica en programmeren”