【问题标题】:How to initialize string variables in java console program? [duplicate]如何在java控制台程序中初始化字符串变量? [复制]
【发布时间】:2019-09-21 04:21:03
【问题描述】:

这是关于一个java控制台程序,其中有一些字符串变量用于搜索记录并显示在控制台中。
当我执行这个程序时,会出现错误消息:

错误:变量“变量名”可能尚未初始化。

我想知道如何在 java 控制台程序中初始化字符串变量。代码如下:

Scanner sc=new Scanner(System.in);
String customername;String cname;
String caddress;String cphone
boolean found;
System.out.println("Enter customer name to search records:");
customername=sc.nextLine();
if (customername==cname)
{
  found=true;
  if(found){
    System.out.println("Customer name:"+cname);
    System.out.println("Customer address:"+caddress);
    System.out.println("Customer phone:"+cphone);}
  }
}

在这里,我想搜索保存在文本文件中的记录,并在 cname==customername 时显示记录,但错误告诉字符串变量 cname 它未初始化,对于 caddresscphone 也是如此。
我应该怎么做来初始化字符串变量以及如何做到这一点?

【问题讨论】:

  • 您通过为变量赋值来初始化变量。比如:String someVariable = "initialValue"; 在 Java 中,在局部变量被赋值之前尝试读取它是错误的。
  • 感谢您的回答。问题已经解决了。谢谢
  • 另外请注意,永远不要使用 == 来比较字符串。改为调用 equals 方法。
  • 还有你的整个代码,首先比较,然后为该布尔值分配一个值,然后立即检查该布尔值,这是荒谬的。
  • 最后:您可以通过单击旁边的复选标记图标来接受答案。写评论“我接受答案”并不是其他人真正关心的......

标签: java console-application


【解决方案1】:

如果您没有默认值,则可以将字符串变量初始化为空字符串,如下所示。

Scanner sc=new Scanner(System.in);
String customername = "";
String cname = "";
String caddress = "";
String cphone  = "";
boolean found = false;

System.out.println("Enter customer name to search records:");
customername=sc.nextLine();
if (customername.equals(cname))
{       
    System.out.println("Customer name:"+cname);
    System.out.println("Customer address:"+caddress);
    System.out.println("Customer phone:"+cphone);            
}

【讨论】:

  • 谢谢您的回答。问题已经解决了。好的,谢谢
  • 您想真正了解如何比较字符串,以避免将如此明显的错误代码复制到您的答案中!
  • 是的,我接受你的回答,因为我从你的回答中得到了解决方案。谢谢
  • 我只是专注于初始化我没有看到的字符串。谢谢你指出来。已编辑。
  • 在更新你的答案时,为什么不修复整个 if 块以减少荒谬?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 1970-01-01
  • 2012-08-18
  • 1970-01-01
  • 2013-09-04
  • 1970-01-01
相关资源
最近更新 更多