线程“主”中发生错误java.lang.NumberFormatException:对于输入字符串:“”

时间:2019-06-26 10:36:31

标签: java

我正在做一个网上购物的学校项目,并且发生错误,当我输入y后,有一部分选择您要购买的产品,在选择变量时,cmd会自动输入“”。

protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            foreach (IMutableEntityType entityType in modelBuilder.Model.GetEntityTypes())
            {
                entityType.Relational().TableName = entityType.DisplayName();
            }
            modelBuilder.Entity<AzureDataExtract>().ToTable("AzureSchemaVersionExecutionExtract","dbo");
        }

3 个答案:

答案 0 :(得分:1)

如果该行为空,则可以跳过该行:

String line = br.readLine();
if (line.isEmpty()) continue;
int choice = Integer.parseInt(br.readLine()); 

答案 1 :(得分:1)

这里:

c1=(char)br.read();

这将从您的输入中读取单个字符。我想你确实输入了

  

yENTER

键盘上的

。事实是:您只读那个字符,而不是换行符/换行符。因此,该部分将“保留”在您的输入中,并且当您执行后续的readLine()时,您会得到该 ENTER 部分,并将其简化为一个空字符串。

一种解决方案:使用readLine()进行所有读取,然后简单地

while(!stringFromUser.equalsIgnoreCase("n)) { 

例如。另外,您可以在进行readLine()之前在 之前简单地进行“伪造” Integer.parseInt(br.readLine());呼叫。

最后:我假设您在System.in上使用(Buffered)Reader。那没有太大意义。您可以改用Scanner。 (有关指导,请参见here

答案 2 :(得分:0)

使用扫描仪从控制台读取:

Scanner in = new Scanner(System.in); 
String s = in.nextLine();