Comment faire pour que le programme vérifie l'instance d'une lettre en java?
Je crée une caisse enregistreuse où je dois utiliser un scanner et je ne peux avoir que 5 montants d'entrée. Il doit également inclure hst et c'est en ayant seulement un "h" après ou avant un montant. Ma question est de savoir comment le programme reconnaîtrait-il que j'ai mis un «h» après ou avant un montant? Cela semble être fait uniquement en utilisant une variable de chaîne, alors comment pourrais-je y parvenir? Je dois stocker les entrées dans un tableau, et donc je l'ai fait fonctionner.
Mon code:
// Import scanner class
import java.util.Scanner;
// Create class and method
class Main {
public static void main(String[] args) {
// Declare the scanner object and create scanner variables
Scanner inp = new Scanner(System.in);
System.out.println("Press any key to start");
String key = inp.nextLine();
System.out.println("\nEnter the amount of each item");
System.out.println("Upto 5 inputs are allowed!\n");
// Define an array double variable, set the limit to 5 inputs
double[] numbers = new double[5];
// Create a for loop to input any numbers 5 times
for (int i = 0; i < numbers.length; i++){
// Add a scanner input to let the user type out the values
numbers[i] = inp.nextDouble();
}
}
}
Réponses
le code ci-dessous demande à l'utilisateur une entrée 5 fois, et seules les valeurs valides seront dans le tableau, les valeurs Vald sont les valeurs avec 'h' au début ou à la fin et ne doivent apparaître qu'une seule fois. c'est-à-dire à «h» à la fois à la fin et au début ou plus d'une fois est invalide.
public static void main(String[] args) throws ParseException {
int counter = 1;
Double[] result = new Double[5];
int index = 0;
while(counter <= 5) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter an Amount ");
String value = scanner.nextLine();
int indexOfH = value.indexOf("h");
int lastIndexOfH = value.lastIndexOf("h");
boolean containsHatstartsOrEnd = indexOfH == 0 || indexOfH == (value.length()-1);
if(containsHatstartsOrEnd && indexOfH==lastIndexOfH){ //Validate h at begins or end and should contains only once
result[index] = Double.parseDouble(value.replace("h", ""));
index++;
}
counter++;
}
System.out.println("Printing Valid values");
for(int i=0; i< result.length; i++) {
if(result[i]!=null) {
System.out.println(result[i]);
}
}
}
entrée et résultat
Enter an Amount 13.45h
Enter an Amount 55h.65
Enter an Amount 32h.33h
Enter an Amount h100.23
Enter an Amount h20
Printing Valid values
13.45
100.23
20.0