我正在嘗試計算單詞有效輸入的百分比。我被卡住了,我嘗試過的每種方法都不起作用。兩個月前我開始學習java,所以我是新手,如果我完成了正確的代碼,我不確定。有人可以給我一些關于如何措辭的建議。在此先感謝
public class Subject3
{
public static void main (String[]args) {
Scanner scan = new Scanner(System.in);
//Creating scanner object
boolean valid = true;
int numOfStrings=0;
do {
valid = true;
System.out.print("How many strings?: ");
try{
numOfStrings = Integer.parseInt(scan.nextLine());
}catch (NumberFormatException e){
System.out.println("Not a word");
valid = false;
}
}while (!valid);
String[] stringPali = new String [numOfStrings];
String input;
for (int i=1; i<numOfStrings 1 ; i ) {
do {
valid = true;
System.out.print("Enter string no." i );
System.out.print(":");
input = scan.nextLine();
if (!input.matches("[A-Za-z0-9] ")){
System.out.println("Not a word");
}
}while (!valid);
}
System.out.println("Results");
System.out.println("Total number of strings: " numOfStrings);
System.out.println("Percentage of words:" (percentage)("%"));
System.out.println("Words starting with capital letter: " ("%"));
}
}
uj5u.com熱心網友回復:
System.out.println("不是一個字"); 這個訊息是錯誤的。它不應該是一個數字。
您創建了一個陣列 stringPali 但從未使用過它?為什么?
以 1 開頭的回圈令人困惑。但這取決于你。
您應該首先將單詞添加到陣列中,最后才能數數。您需要完整的用戶輸入來計算百分比。因此,當用戶仍在輸入輸入時,沒有必要計算有效字串。最后做。
您可以使用正則運算式來匹配僅包含字母的字串和以大寫字母開頭的字串。
import java.util.Scanner; public class ExampleCase { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //Creating scanner object boolean valid = true; int numOfStrings = 0; do { valid = true; System.out.print("How many strings?: "); try { numOfStrings = Integer.parseInt(scan.nextLine()); } catch (NumberFormatException e) { System.out.println("Not a number"); valid = false; } } while (!valid); String[] stringPali = new String[numOfStrings]; for (int i = 0; i < numOfStrings; i ) { System.out.print("Enter string no." i); System.out.print(":"); String input = scan.nextLine(); stringPali[i] = input; } System.out.println("Results"); System.out.println("Total number of strings: " numOfStrings); int validStringCount = countStrings(stringPali, "^[a-zA-Z]*$"); double percentage = (double) validStringCount / numOfStrings; System.out.println(String.format("Percentage of words: %f%%", percentage)); int startWithCapitalCount = countStrings(stringPali, "^[A-Z].*"); percentage = (double) startWithCapitalCount / numOfStrings; System.out.println(String.format("Words starting with capital letter: %f%%", percentage)); } private static Integer countStrings(String[] stringPali, String pattern) { int count = 0; for (String str : stringPali) { if (str.matches(pattern)) { count ; } } return count; } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/527834.html
標籤:爪哇细绳输入百分比
上一篇:我可以從字串中重復最多的陣列中獲取X個單詞(以降序形式)
下一篇:分層字串定界不拆分
