Programın java'da bir harfin örneğini kontrol etmesini nasıl sağlayabilirim?
Bir tarayıcı kullanmam gereken ve sadece 5 giriş miktarına sahip olabileceğim bir kasa oluşturuyorum. Aynı zamanda hst içermelidir ve bu, yalnızca bir miktardan sonra veya önce bir "h" bulunmasıdır. Sorum şu: Program, bir miktarın önüne veya arkasına "h" koyduğumu nasıl anlayabilir? Bu sadece bir dizgi değişkeni kullanılarak yapılmış gibi görünüyor, peki bunu nasıl başarabilirim? Girişleri bir dizide saklamam gerekiyor ve bu yüzden onu çalıştırdım.
Kodum:
// 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();
}
}
}
Yanıtlar
Aşağıdaki kod, kullanıcı girişini 5 kez sorar ve yalnızca geçerli değerler Dizide yer alır, Vald değerleri, başında veya sonunda 'h' olan değerlerdir ve yalnızca bir kez oluşmalıdır. yani, hem başlangıçta hem de sonda 'h' veya birden fazla geçersizdir.
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]);
}
}
}
girdi ve sonuç
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