Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Problema inserimento in variabile

    ciao a tutti...
    ho un dilemma...
    perké quando eseguo questo codice
    codice:
    		char[] cArr = {'w','w','w','w','d','d'};
    		int cont = 0;
    		char c,c_old = '\0';
    		
    		for(int i = 0; i < cArr.length; i++){
    			c = cArr[i];
    			if(c == c_old) cont++;
    			else if (c != c_old){
    				System.out.println(cont+""+c_old);
    				cont = 1;
    			}
    			c_old = c;
    			
    		}
    		System.out.println(cont+""+c_old);
    ottengo il mio bel risultato, ovvero
    codice:
    4w2d
    mentre se uso questo codice
    codice:
    		char[] cArr = {'w','w','w','w','d','d'};
    		int cont = 0;
    		char c,c_old = '\0';
    		StringBuffer prova = new StringBuffer(0);
    		
    		for(int i = 0; i < cArr.length; i++){
    			c = cArr[i];
    			if(c == c_old) cont++;
    			else if (c != c_old){
    				prova.append(cont+""+c_old);
    				cont = 1;
    			}
    			c_old = c;
    			
    		}
    		prova.append(cont+""+c_old);
    		System.out.println(prova);
    perché cavolo mi viene stampato un inutile
    codice:
    0
    ??????????????

    Questo succede anche se uso uno String normale al posto dello StringBuffer =_=
    Flash Developer for Rich Media
    PHP, jQuery Developer

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Al primo ciclo (per la prima 'w' dell'array), la condizione (c != c_old) è certamente vera quindi mette insieme 0 (cont) e il carattere nullo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    e perké poi non appende il resto?
    Flash Developer for Rich Media
    PHP, jQuery Developer

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Il tuo primo codice stampa:
    0
    4w
    2d


    (hai usato dei println)

    Il tuo secondo codice stampa:
    0 4w2d

    (non ci sono newline in mezzo)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    sul mio pc non stampa quello che dici tu nel secondo caso .__________.
    stampa solo 0
    Flash Developer for Rich Media
    PHP, jQuery Developer

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Miroku
    sul mio pc non stampa quello che dici tu nel secondo caso .__________.
    stampa solo 0
    A me da console stampa proprio come ho detto. Tieni presente che dopo quel 0 c'è proprio un carattere nullo, ossia un byte 00h.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    che strano.... da console lo stampa anke a me... ma non da Notepad++.... bah

    come faccio a togliere quello 0 e quello spazio?
    Flash Developer for Rich Media
    PHP, jQuery Developer

  8. #8
    Risolto da solo.... era proprio una cavolata =P

    codice:
    		char[][] cArr = {{'w','w','w','w','d','d','c'},{'w','w','w','c','d','d','c'}};
    		StringBuffer prova = new StringBuffer(0);
    		
    		for (int j = 0; j < cArr.length; j++){
    			int cont = 0;
    			char c,c_old = '\0';
    			
    			for(int i = 0; i < cArr[0].length; i++){
    				c = cArr[j][i];			
    				if(c == c_old && cont < 3) cont++;
    				else if(c == c_old && cont >= 3){
    					prova.append(cont+""+c_old);
    					cont = 1;
    				}
    				else if (c != c_old && c_old != '\0' ){
    					prova.append(cont+""+c_old);
    					cont = 1;
    				}
    				c_old = c;		
    			}
    			prova.append(cont+""+c_old);
    		}
    		System.out.println(prova);
    L'ho esteso ad una matrice
    Flash Developer for Rich Media
    PHP, jQuery Developer

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.