Esercizi Java per corso di formazione Java Base

Esercizi Java per corso di formazione Java Base
Elenco di esercizi java con soluzione per corso di formazione Java Base.

La numerazione dell'esercizio è indicativa del livello di difficoltà, dal più semplice al più complicato. Se hai osservazioni, domande o suggerimenti: scrivici all'indirizzo info@bloginnovazione.it



import java.util.Scanner;



public class CompareTwoStrings {

public static void main(String args) {



Scanner risposta = new Scanner(System.in);



System.out.println("Inserisci la prima stringa");

String str1 = risposta.nextLine();



System.out.println("Inserisci la seconda stringa");

String str2 =risposta.nextLine();



if(str1.equals(str2))

{

System.out.println("La stringa " + str1 + " è uguale a " + str2);

}

else

{

System.out.println("La stringa " + str1 + " è diversa da " + str2);

}



risposta.close();



}

}

import java.util.Scanner;

import java.util.regex.Matcher;

import java.util.regex.Pattern;



public class CompareTwoStrings {



public static void main(String args){

Scanner input = new Scanner(System.in);



System.out.println("Digitare prima stringa:");

String str1 = input.nextLine();



System.out.println("Digitare seconda stringa:");

String str2 = input.nextLine();



boolean verifica = str1.equals(str2); // check equals

boolean verificaContenuto1 = str1.contains(str2); //check inclusion

boolean verificaContenuto2 = str2.contains(str1);



if (verifica){

System.out.println("La stringa " + str1 + " è uguale alla stringa "+ str2 + " (sensibile al maiuscolo).");

}

else if (verificaContenuto1){



Pattern p = Pattern.compile(str2);

Matcher m = p.matcher(str1);



int count1 = 0;

while(m.find()){

count1 += 1;

}



System.out.println("La stringa2 " + str2 + " è contenuta nella stringa1 " + str1 + " " + count1 + " volte.");

}

else if (verificaContenuto2){



Pattern p = Pattern.compile(str1);

Matcher m = p.matcher(str2);



int count2 = 0;

while(m.find()){

count2 += 1;

}



System.out.println("La stringa1 " + str1 + " è contenuta nella stringa2 " + str2 + " " + count2 + " volte.");

}



else {

System.out.println("La stringa " + str1 + " è diversa alla stringa " + str2 + ".");

}



input.close();



System.out.println("Fine.");

}

}

import java.util.Scanner;

import java.util.regex.Matcher;

import java.util.regex.Pattern;



public class CompareTwoStrings {



public static String bi2int (String bin){

char numbers = binary.toCharArray();

int result = 0;

for(int i=numbers.length - 1; i>=0; i--)

if(numbers=='1'){

result += Math.pow(2, (numbers.length-i - 1));

}

return result;

}



public static String bi2esa (String bin){

}



public static String int2bi (String integer){

int integer1 = Integer.parseInt(integer);

String result = Integer.toBinaryString(integer1);

return result;

}



public static String int2esa (String integer){

}



public static String esa2bi (String esa){

}



public static String esa2int (String esa){

}



public static void main(String args){



Scanner input = new Scanner(System.in);



System.out.println("Digitare un numero binario, intero o esadecimale:");

String numero = input.nextLine();



Pattern pBinario = Pattern.compile(""|"", Pattern.CASE_INSENSITIVE);

Matcher mBinario = pBinario.matcher(numero);

boolean binario = mBinario.find();



Pattern pIntero = Pattern.compile("", Pattern.CASE_INSENSITIVE);

Matcher mIntero = pIntero.matcher(numero);

boolean intero = mIntero.find();



Pattern pEsadecimale = Pattern.compile("", Pattern.CASE_INSENSITIVE);

Matcher mEsadecimale = pEsadecimale.matcher(numero);

boolean esadecimale = mEsadecimale.find();



if (binario){

System.out.println(numero + " è binario!");

System.out.println("In interi corrisponde a " + bi2int(numero) + ",");

System.out.println("in esadecimali corrisponde a " + bi2esa(numero) + ".");

}



if (intero){

System.out.println(numero + " è intero!");

System.out.println("In binario corrisponde a " + int2bi(numero) + ",");

System.out.println("in esadecimali corrisponde a " + int2esa(numero) + ".");

}



if (esadecimale){

System.out.println(numero + " è esadecimale!");

System.out.println("In binario corrisponde a " + esa2bi(numero) + ",");

System.out.println("in interi corrisponde a " + esa2int(numero) + ".");

}



if (!esadecimale && !intero && !binario){

System.out.println("Input errato!");

}



input.close();

}

}

Il programma legge il valore inserito nel campo di testo corrispondente alla temperatura in gradi Celsius. Se il testo inserito è vuoto non deve essere effettuata alcuna operazione; altrimenti il testo viene convertito in un valore double e tale valore viene aumentato di 273.15 per ottenere i gradi Kelvin, che vengono poi scritti nel corrispondente campo di testo.



import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;



public class ConvertitoreTemperatura extends JFrame implements ActionListener{

JButton btnConverti;

JLabel lbTempCelsius, lbTempKelvin;

JTextField txtTempCelsius, txtTempKelvin;

JPanel pannello, pann1, pann2;



public ConvertitoreTemperatura() {

pannello = new JPanel();

pann1 = new JPanel(new GridLayout(0,1));

pann2 = new JPanel();

txtTempCelsius = new JTextField("",10);

txtTempKelvin = new JTextField("",10);

lbTempCelsius = new JLabel("Temperatura in Celsius");

lbTempKelvin = new JLabel("Temperatura in Kelvin");

btnConverti = new JButton("Converti Temperatura");

pann1.add(lbTempCelsius);

pann1.add(txtTempCelsius);

pann1.add(lbTempKelvin);

pann1.add(txtTempKelvin);

pann2.add(btnConverti);

pannello.add(pann1);

pannello.add(pann2);

setContentPane(pannello);

btnConverti.addActionListener(this);

setTitle("Convertitore Temperatura ");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

pack();

setSize(400,150);

setVisible(true);

}

public void actionPerformed(ActionEvent e) {

String str = txtTempCelsius.getText();

if (!str.contentEquals("")) {

double d = Double.parseDouble(str);

d = d + 273.15;

txtTempKelvin.setText(""+d);

}

}

public static void main(String args) {

ConvertitoreTemperatura frame = new ConvertitoreTemperatura();

}

}

public class SommaConcatenazione {



public static void main(String args) {



char simbolo;

int numero1;

int numero2;

String parola1;

String parola2;

int risultato;

String risultatoStringa;



Scanner scanner = new Scanner(System.in);



System.out.println("scegli l'operazione: numeri (n), Stringhe (s)");

simbolo = scanner.nextLine().charAt(0);



switch (simbolo) {



case 'n':



System.out.println("inserisci un numero");

numero1 = scanner.nextInt();



System.out.println("inserisci il secondo numero");

numero2 = scanner.nextInt();



risultato = numero1 + numero2;

System.out.println(numero1 + " + " + numero2 + " = " + risultato);

break;



case 's':



System.out.println("inserisci una parola");

parola1 = scanner.nextLine();



System.out.println("inserisci la seconda parola");

parola2 = scanner.nextLine();



risultatoStringa = parola1 + parola2;

System.out.println(parola1 + " " + parola2 + " = " + risultatoStringa);

break;

default:

System.out.println("operazione non valido");

break;

}

scanner.close();

System.out.println("FINE");

}



}

import java.util.Scanner;



public class Main{



public static int somma (int addendo1, int addendo2)

{

return addendo1 + addendo2;

};



public static String somma(String addendo1, String addendo2)

{

return addendo1 + addendo2;

};

public static void main(String args){

Scanner risposta = new Scanner(System.in);



System.out.println("Cosa vuoi sommare? 1-numeri....2-stringhe");

int input = risposta.nextInt();



if( input == 1)

{

System.out.println("Inserisci il primo numero");

int num1=risposta.nextInt();



System.out.println("Inserisci il secondo numero");

int num2=risposta.nextInt();



System.out.println("Il risultato è: "+ somma(num1,num2));

}

else

{

risposta.nextLine();

System.out.println("Inserisci la prima stringa");

String str1 = risposta.nextLine();



System.out.println("Inserisci la seconda stringa");

String str2 =risposta.nextLine();



System.out.println("Il risultato è: "+ somma(str1,str2));

}

risposta.close();

}

}

import java.util.Scanner;

import java.util.regex.Matcher;

import java.util.regex.Pattern;



public class Esercizio3 {



public static int somma(int addendo1, int addendo2){

return addendo1 + addendo2;

}



public static String somma(String stringa1, String stringa2){

return stringa1 + stringa2;

}



public static void main(String args) {



Scanner risposta = new Scanner(System.in);



System.out.println("Inserisci il primo valore");

String str1 = risposta.nextLine();



System.out.println("Inserisci il secondo valore");

String str2 =risposta.nextLine();



Pattern pattern1 = Pattern.compile("", Pattern.CASE_INSENSITIVE);

Matcher matcher1 = pattern1.matcher(str1.toUpperCase());

boolean matchFound1 = matcher1.find();



Pattern pattern2 = Pattern.compile("", Pattern.CASE_INSENSITIVE);

Matcher matcher2 = pattern2.matcher(str2.toUpperCase());

boolean matchFound2 = matcher2.find();



if( matchFound1 || matchFound2)

{

System.out.println("Il risultato è: "+ somma(str1,str2));

}

else

{

int num1 = Integer.parseInt(str1);

int num2 = Integer.parseInt(str2);



System.out.println("Il risultato è: "+ somma(num1,num2));

}



risposta.close();



}

}

Nel primo caso useremo la ricorsione, dove un metodo chiama se stesso per la soluzione, e nel secondo caso useremo un loop come ciclo for e while per ottenere l'iterazione.



Per creare una soluzione ricorsiva, abbiamo bisogno di un caso base in cui il programma termina e la ricorsione si interrompe. Vediamo che il caso base è fattoriale di 1, che è 1, quindi quando la tua funzione chiama fattoriale(1) puoi semplicemente restituire 1 senza eseguire alcun calcolo. E, se il numero è maggiore di 1, continuiamo ad applicare la formula fattoriale ricorsivamente chiamando lo stesso fattoriale con n - 1. Una volta che l'input diventa 1, il metodo interrompe la chiamata ricorsiva e restituisce 1. Da lì in poi lo stack del metodo ha iniziato a scorrere verso il basso e infine viene calcolato e restituito il fattoriale di un numero.



Usando invece l'iterazione, e quindi il ciclo for per calcolare il fattoriale n! = n(n-1)(n-2)…..1. Puoi vedere che iniziamo con il numero e lo moltiplichiamo per il fattoriale che è inizializzato con 1, quindi riduciamo il numero di una unità fino a quando il numero diventa 1, che non è altro che n(n-1)(n-2) …..1.



import java.util.Scanner;



public class Factorial{



public static int recursiveFactorial(int n)

{



if( n
BlogInnovazione.it
#esercizi #java
https://bloginnovazione.it/programma-java/25027/

Commenti

Post popolari in questo blog

Forescout si unisce a MISA e annuncia l'integrazione con Microsoft Sentinel per fornire servizi automatizzati di gestione delle minacce informatiche su tutte le infrastrutture aziendali