Aiuto esercizio complesso in Java

di il
5 risposte

Aiuto esercizio complesso in Java

Aiutatemi è importante.
Scrivere un programma in linguaggio Java che chiede all'utente di inserire una sequenza di stringhe.
La sequenza viene conclusa con una stringa vuota.
Stampa la somma delle lunghezze delle stringhe che iniziano con una lettera maiuscola.
Non so come si fa.
Vi prego aiutatemi scrivendo il codice.
Vi prego.
Grazie.

5 Risposte

  • Re: Aiuto esercizio complesso in Java

    cnolobo ha scritto:


    Scrivere un programma in linguaggio Java che chiede all'utente di inserire una sequenza di stringhe.
    La sequenza viene conclusa con una stringa vuota.
    E per questo basta Scanner (con nextLine() ) oppure BufferedReader (con readLine() ), secondo cosa conosci e/o ti è stato insegnato.

    cnolobo ha scritto:


    Stampa la somma delle lunghezze delle stringhe che iniziano con una lettera maiuscola.
    Non so come si fa.
    Devi chiaramente tenere una variabile, inizialmente a 0, per la lunghezza. Poi devi prendere la prima lettera di una stringa (metodo charAt() ) poi ti basta verificare se è una lettera maiuscola (ti basta sapere quale è il range di valori ASCII per le lettere maiuscole inglesi ... non credo devi andare su tutto il range Unicode per trattare es. È Õ Ü ecc...)
  • Re: Aiuto esercizio complesso in Java

    Fatto. Un solo problema c'è.
    Questo è il codice:
    package javaapplication18;
    import java.io.*;
    public class JavaApplication18 {

    public static void main(String[] args) {
    InputStreamReader input=new InputStreamReader(System.in);
    BufferedReader tastiera=new BufferedReader(input);
    String s;
    int somma=0;
    System.out.println("Inserire la sequenza di stringhe");
    do{
    try{
    s = tastiera.readLine();
    }
    catch(Exception e){
    System.out.println("Errore!");
    return;
    }

    if (!s. equals ("")) {
    if (s. charAt (0) >= 'A' && s. charAt (0) <= 'Z')
    somma = somma + s. length ();
    }
    } while (!s. equals ("" ));
    System . out . println ( somma );
    }
    }

    Il problema è il seguente: come posso sostituire s.equals ( if (!s. equals ("")) ?
    Non capisco questa condizione che vuol dire e cosa fa e cos'è equals.
    Come lo posso sostituire?
    Grazie
  • Re: Aiuto esercizio complesso in Java

    cnolobo ha scritto:


    come posso sostituire s.equals ( if (!s. equals ("")) ?
    Non capisco questa condizione che vuol dire e cosa fa e cos'è equals.
    Come lo posso sostituire?
    equals è in generale il metodo che verifica se due oggetti sono "uguali" come contenuto/significato. (diversamente da quanto fa == con i reference)

    Per verificare se una stringa è vuota:

    a) str.equals("") (o al contrario se str può essere null: "".equals(str) )
    b) str.length() == 0
    c) str.isEmpty() (solo da Java 6 in poi)
  • Re: Aiuto esercizio complesso in Java

    Non ti ho capito molto bene.
    Io volevo sapere cosa vuol dire quella if li?
    e come posso sostituire equals.
    se metti s.lenght()==0 non me lo fa
    mi fa inserire una stringa sola.
    io invece devo inserire una sequenza di stringhe interrotta da una stringa vuota.
    Mi potresti scrivere il pezzo di codice cosi capisco?
    grazie
  • Re: Aiuto esercizio complesso in Java

    cnolobo ha scritto:


    Io volevo sapere cosa vuol dire quella if li?
    !s.equals("")

    Il ! è la "negazione". Quindi la condizione è "se str non è vuoto"

    cnolobo ha scritto:


    e come posso sostituire equals.
    Lì devi testare se una stringa non è vuota: ripeto che puoi usare le opzioni che ho detto a), b), c)

    cnolobo ha scritto:


    se metti s.lenght()==0 non me lo fa
    Ovviamente il senso è da "negare", indipendentemente che usi a), b) o c) ... io li ho detti, in generale, nel senso di "vuoto".
Devi accedere o registrarti per scrivere nel forum
5 risposte