在我的程序塊中,我試圖獲取用戶輸入並將它與文件「PriceList3.txt」中的每一行進行比較。對於每一行,我都存儲了一些字符串變量。當其中一行的某些內容與用戶輸入(contains方法)相同時,我使用Pattern和Matcher類來提取某些信息,並將txt文件的一行部分分配給一個變量。在我調用setPrice方法後,我試圖停止閱讀「PriceList3.txt」文件。當if(m.find())中的所有語句都被執行後,您是否知道如何停止讀取文件?我不知道從哪裏開始。停止讀取某一行的文本文件java
感謝您的回覆和幫助。
String regularExpr = "([\\w]+)\\s+([\\w]+)\\s+([\\d.\\d)]+)[\\D]+([\\d.\\d]+)";
Pattern pattern = Pattern.compile(regularExpr);
File inFile = new File("PriceList3.txt");
Scanner read = new Scanner(inFile);
System.out.print("Enter the name and weight of the item: ");
String item = scan.nextLine();
while(read.hasNextLine())
{
String each = read.nextLine();
if(each.contains(item))
{
Matcher m = pattern.matcher(each);
if(m.find())
{
String itemName1 = m.group(1).trim()+ " " + m.group(2);
itemName.setName(itemName1);
String weight = (m.group(3).trim());
double weight1 = Double.parseDouble(weight);
itemName.setWeight(weight1);
double itemPrice = Double.parseDouble(m.group(4).trim());
itemName.setPrice(itemPrice);
}
cashier1.addItem(itemName);
}
}
「break」將停止並退出循環。所以,如果你把它放在你的if語句的末尾,你會突破意志循環並在代碼之後運行代碼。 –