簡體   English   中英

如何使用空字符串終止?

[英]How can i use Empty String to terminate?

我只想遵循這種條件,但是問題是當我輸入空白時,它將是continue loop infinity。

請輸入S(供應)或R(補充),然后輸入ID和數量。

R p122 10

p125(踏板)的新庫存水平為18

S p905 20

找不到ID為p905的零件

空字符串(終止)

顯示決賽。

我也嘗試以下代碼,但無法正常工作

if (n.equals("")){
     code 
}

這是我的代碼:

import java.util.*;
public class TestPart {
public static void main(String[] args) 
{   
    Part[] part = new Part[5];
    part[0] = new Part("p122", "Chain", 48, 12.5 );
    part[1] = new Part("p123", "Chain Guard", 73, 22.0 );
    part[2] = new Part("p124", "Crank", 400, 11.5 );
    part[3] = new Part("p125", "Pedal", 38, 6.5 );
    part[4] = new Part("p126", "Handlebar", 123, 9.50 );



    Scanner src = new Scanner(System.in);


    String n;
    String id;
    int qty;

    System.out.print("Please Enter either S(supply) or R(replenish) followed by ID and quantity:\n");

    int a = 0;
    do
    {
        n = src.next();
        id= src.next();
        qty= src.nextInt();

        boolean found = false;

        for(int i = 0; i< part.length; i++)
        {
            if(part[i].getID().equals(id))
            {
                found = true;
                String name = part[i].getName();
                int stockLevel = part[i].getStockLevel();

                if(id.equals(part[i].getID()) && n.charAt(0) == 'S')
                {
                    double amount = part[i].supply(qty);
                    if(amount>0){
                        System.out.println("New Stock-level for " + part[i].getID() + "(" + part[i].getName() + ") is " + part[i].getStockLevel());
                    }
                    else{
                        System.out.println("New Stock-level for " + part[i].getID() + "(" + part[i].getName() + ") is not available" );
                    }

                }
                else if (id.equals(part[i].getID()) && n.charAt(0) == 'R')
                {
                    part[i].replenish(qty);
                    System.out.println("New Stock-level for " + part[i].getID() + "(" + part[i].getName() + ") is " + part[i].getStockLevel());
                }

            }

        }

        if (found == false)
            {
                System.out.println("No part found with ID " + id );
            }

        System.out.println("");
        for(int i=0; i<part.length; i++)
        {
            System.out.println(part[i].getID()+ "\t"+part[i].getName()+"\t"+part[i].getStockLevel()+"\t"+part[i].getUnitPrice() );
        }

        }while(a ==0);  


}

您的代碼是:

  a = 0;
  do {
    // ...
  }while(a ==0);  

這就是它無限循環的原因。

如果要在輸入行為空時終止

do{ 
String line = src.nextLine();
    String []  inputs = null;
    if(!line.matches("\\s*")){
        String n ;
        String id ;
        int qty;

        inputs = line.split(" ");
        if(inputs.length ==3)
        {
           n = inputs[0];
           id = inputs[1];
           qty  = (int) Integer.parseInt(inputs[2]);
        }
        else if(inputs.length ==2) 
        {
             id = inputs[0];
             qty  = (int) Integer.parseInt(inputs[1]);
        }

       // Your Logic

}
else
break;
}while(a==0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM