1. #1
    deathsythe's Avatar
    Registered
    26/11/03
    Location
    Rstad
    Posts
    9,839
    iTrader
    16 (100%)
    Mentioned
    1 Post(s)
    Reputation
    0/80

    StringBuffer probleem

    Hallo, de opgave is om een chemische formule in te lezen en deze dus zo in een array te plaatsen ( Au, O, H, ...)

    uiteindelijk moet je 2 formules ingeven en worden ze vergeleken, dus ze moeten gerangschikt worden etc.

    nu als de invoer bijv 'HalloTest' zou zijn, dan moet in die array 'Hallo' en 'Test' als index 0 en 1 komen.

    mijn code voor de invoer om te zetten in die array is als volgt;
    Code:
     
    public ChemischeStof(String f) {
        
       
    	formule = f;
        }
    
    
    
    public String conversie ()
         {
         	
         	
         	StringBuffer sb = new StringBuffer(formule);
         	StringBuffer [] array = new StringBuffer [formule.length()];
         
         	for (int i = 0 ; i < sb.length(); i++)
         	{
         		
         		char c = sb.charAt(i);
         		
         		boolean b = Character.isUpperCase(c);
         			if (b = true) 
         			{  
      					array[i] = new StringBuffer(c);
         			}
         			else
         			{
         				array[i].append(c);
         			}
         			
         	}
         	
         
         return Arrays.toString(array);
    
    
    
    oproepen gebeurd via dit in de main; 
    
    
    	Scanner sc = new Scanner (System.in);
    
    	System.out.println("Geef de Eerste stof in;");
    	String naam1 = sc.nextLine();
    	ChemischeStof c1 = new ChemischeStof (naam1);
    	
    	String s = c1.conversie();
    bij de uitvoer heb ik een array waar dus niets inzit, waar ben ik fout?
    Gear: Denon X1100 | 2 x Sync Xtrm 1 | 2 x Reloop RMP1 | NI F1 | NI X1 | NI S2 |NI Maschine MKII | NI Audio 8 DJ | Sennheiser HD25
    no votes  

  2. #2
    Cycloon's Avatar
    Registered
    18/01/04
    Location
    Melle
    Posts
    10,535
    iTrader
    56 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/102
    Serieus, leer je debugger te gebruiken. Je hebt 10 regels code, als je dat al niet zelf kan debuggen dan kan je beter stoppen met programmeren.
    “In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
    PSN: Cycloon - Final Fantasy XIV: A realm reborn character
    no votes  

  3. #3
    deathsythe's Avatar
    Registered
    26/11/03
    Location
    Rstad
    Posts
    9,839
    iTrader
    16 (100%)
    Mentioned
    1 Post(s)
    Reputation
    0/80
    ik wil stoppen met programmeren, daar ik bouwkunde doe, bedankt voor de hulp alleszins.
    Gear: Denon X1100 | 2 x Sync Xtrm 1 | 2 x Reloop RMP1 | NI F1 | NI X1 | NI S2 |NI Maschine MKII | NI Audio 8 DJ | Sennheiser HD25
    no votes  

  4. #4
    Mackenzie's Avatar
    Registered
    06/11/09
    Location
    Turnhout
    Posts
    841
    iTrader
    8 (100%)
    Mentioned
    0 Post(s)
    Is u formule-variabele globaal geïnstantieerd in u ChemischeStof? Of kijk ik er nu over?
    no votes  

  5. #5
    deathsythe's Avatar
    Registered
    26/11/03
    Location
    Rstad
    Posts
    9,839
    iTrader
    16 (100%)
    Mentioned
    1 Post(s)
    Reputation
    0/80
    ja, mijn excuses, dat heb ik niet mee gekopieerd.
    Gear: Denon X1100 | 2 x Sync Xtrm 1 | 2 x Reloop RMP1 | NI F1 | NI X1 | NI S2 |NI Maschine MKII | NI Audio 8 DJ | Sennheiser HD25
    no votes  

  6. #6
    Daedie's Avatar
    Registered
    30/09/02
    Location
    Kasterlee
    Posts
    6,160
    iTrader
    11 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/25
    b == true ipv b = true. Nu is b altijd true in die if/else conditie.

    That being said. Als ge nog een aantal programmeeropdrachten voor de boeg hebt zou ik wel cycloon zijn raad opvolgen. Of toch op zen minst uw te debuggen code (tijdelijk) even volsteken met prints om uw fouten op te sporen.

    Als ge hier een print had gestoken na de if en één na de else had ge al kunnen opmerken dat de else nooit betreden wordt.

    edit: ik geef ook geen garantie dat dit uw enige fout was.
    PSN: Daedie
    no votes  

  7. #7
    forloRn_'s Avatar
    Registered
    23/11/03
    Location
    Landeurp
    Posts
    1,791
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    10/17
    Ik zou "= true" weglaten en nog eens proberen.
    no votes  

  8. #8
    NeverwinterX's Avatar
    Registered
    27/08/04
    Location
    Leuven
    Posts
    930
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    11/38
    Quote Originally Posted by deathsythe View Post
    This quote is hidden because you are ignoring this member. Show
    Code:
     
    public String conversie ()
         {
         	
         	
         	StringBuffer sb = new StringBuffer(formule);
         	StringBuffer [] array = new StringBuffer [formule.length()];
         
         	for (int i = 0 ; i < sb.length(); i++)
         	{
         		
         		char c = sb.charAt(i);
         		
         		boolean b = Character.isUpperCase(c);
         			if (b = true) 
         			{  
      					array[i] = new StringBuffer(c);
         			}
         			else
         			{
         				array[i].append(c);
         			}
         			
         	}
         	
         
         return Arrays.toString(array);
    bij de uitvoer heb ik een array waar dus niets inzit, waar ben ik fout?
    Enkele dingen om over na te denken:
    • Je kan niet de lengte van je array op even lang als de formule instellen omdat er minder chemische tekens zullen zijn als letters in de formule.
    • De i (van 0 tot aantal letters in de formule) als index gebruiken in je array houdt dan ook geen steek.
    • Maak kennis met de List<string>.
    • Gebruik == om te kijken of iets gelijk is aan iets, = dient voor toekenning.
    • Een string is immutable: test.append(bla) gaat niets veranderen aan test, het geeft een nieuwe string terug.
    • test.append(bla) zal falen als test null is.
    Last edited by NeverwinterX; 15-04-2012 at 13:32.
    I am thee and thou art me and all of one is the other.
    TED talk: Richard Dawkins on militant atheism
    no votes  

  9. #9
    deathsythe's Avatar
    Registered
    26/11/03
    Location
    Rstad
    Posts
    9,839
    iTrader
    16 (100%)
    Mentioned
    1 Post(s)
    Reputation
    0/80
    ah ja die '=true', dom

    nuja ik werk met jcreator LE, daar kunt ge niet mee debuggen veronderstel ik?

    nuja ik zal nog wat verder zoeken alleszins bedankt voor de tips.

    *edit al terug gepost, bedankt voor de info
    Gear: Denon X1100 | 2 x Sync Xtrm 1 | 2 x Reloop RMP1 | NI F1 | NI X1 | NI S2 |NI Maschine MKII | NI Audio 8 DJ | Sennheiser HD25
    no votes  

  10. #10
    Cycloon's Avatar
    Registered
    18/01/04
    Location
    Melle
    Posts
    10,535
    iTrader
    56 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/102
    Zelf al biedt jcreator geen debugger aan, dan zou je nog steeds de raad van Daedie kunnen volgen en je code volsteken met System.out.println("tralala") lijnen.

    En anders moet je maar eens op zoek gaan naar netbeans of eclipse, die bieden dat wel aan.
    “In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
    PSN: Cycloon - Final Fantasy XIV: A realm reborn character
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in