Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-11-2009, 15:01   #1
miao84
Member
 
Iscritto dal: Oct 2009
Messaggi: 239
[JAVA] Generare sequenza in modo crescente

Avrei bisogno di una funzione che ogni volta che viene richiamata restituisca un numero crescente rispetto a quello che ha generato prima, di sei cifre. Ad esempio il primo numero sarà 000001 poi 000002 e cosi via..è possibile?
miao84 è offline   Rispondi citando il messaggio o parte di esso
Old 02-11-2009, 08:58   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da miao84 Guarda i messaggi
Avrei bisogno di una funzione che ogni volta che viene richiamata restituisca un numero crescente rispetto a quello che ha generato prima, di sei cifre. Ad esempio il primo numero sarà 000001 poi 000002 e cosi via..è possibile?
Certo, puoi implementarti una classe che faccia quanto hai richiesto (in Java le "funzioni" non esitono, esistono i "metodi di istanza" e i "metodi di classe" quindi è implicato l'uso delle classi).

Un esempio:
Codice:
public class AutoCounter
{
    private int counter;
    private final int maxCounter;
    private final int maxDigit;

    public AutoCounter(int max) {
        maxCounter = max;
        maxDigit = countDigit(max);
        counter = 1;
    }

    // restituisce il numero di cifre che formano il numero intero in base
    // 10 passato come argometo
    private int countDigit(int number) {
        String s = Integer.toString(number);
        return s.length();
    }

    // restituisce tutte le maxDigit cifre del numero corrente e ne incrementa il valore
    public String getNext() {
        int value = counter;
        incrementCounter();
        return doCustomFormatting(value);
    }

    private void incrementCounter() {
        if (counter < maxCounter) {
            counter++;
        }
//        else {
//            String msg = "Impossibile incrementare il contatore oltre il valore massimo";
//            throw new RuntimeException(msg);
//        }
    }

    // formatta il numero passato in ingresso in una stringa in modo che sia sempre
    // formata dallo stesso numero di cifre di maxCounter.
    // Esempio: con maxCounter = 999999 (6 cifre) e value = 13;
    // la stringa restituita deve essere "000013".
    private String doCustomFormatting(int value) {
        int valueDigit = countDigit(value);
        int leadingZeroes = maxDigit - valueDigit;
        String s = zeroesString(leadingZeroes) + String.valueOf(value);
        return s;
    }
    
    // restituisce una stringa formata da tanti zero quanti
    // indicati da leadingZeroes
    private String zeroesString(int leadingZeroes) {
        StringBuilder sb = new StringBuilder();
        while(leadingZeroes > 0) {
            sb.append("0");
            leadingZeroes--;
        }
        return sb.toString();
    }


    // Esempio d'uso:
    public static void main(String... args) {
        //AutoCounter counter = new AutoCounter(999999);
        AutoCounter counter = new AutoCounter(20);
        for (int i=0; i<30; i++) {
            System.out.println(counter.getNext());
        }
    }
}
In questo esempio, nel caso in cui venga "sforato" il limite impostato per il contatore il contatore stesso non viene più incrementato ma restituisce sempre il valore massimo; un'alternativa può essere quella di lanciare un'eccezione (parte commentata nel codice).
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 02-11-2009 alle 09:55.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
Ricarica wireless dinamica fino a 150 kW...
Troppi report invalidi generati dall'IA:...
Furto di identità su scala nazion...
HPE vende i primi sistemi AMD Helios per...
Suno AI nel mirino dell'Antitrust: conte...
Xiaomi avrebbe cancellato il suo prossim...
WINDTRE BUSINESS rinnova l’offerta mobil...
BMW inaugura la fabbrica di batterie da ...
Googlebook apre al modding: bootloader s...
Denuvo non molla, vuole scoprire chi &eg...
Il miglior portatile tuttofare a basso p...
Gli agenti di OpenAI hanno mandato in ti...
Follie Amazon Prime: Zenbook è un...
MicroSD SanDisk in offerta Prime Day: Ul...
Steve Jobs, 15 anni dopo: John Ternus e ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:28.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v