【问题标题】:Exception in thread "main" java.lang.Error : String[] not initialized线程“main”java.lang.Error 中的异常:未初始化字符串 []
【发布时间】:2015-12-14 09:19:08
【问题描述】:

我想编写一个程序,因为它从用户那里获取输入字符串(例如 bhas1234@gmail.com)并打印为 bhas1234(在 @ 之后留下字符)当我编写以下代码时它显示以下错误:

import java.util.*;

import java.util.Scanner;

public class Name {

    public static void main(String[] args) {

                Scanner take =new Scanner(System.in);
                int j=0;
                String[] sh;
                String gmail;
                for(j=0;sh[j]!="exit";j++)
                {
                sh[j]= take.nextLine();
                int i=sh[j].indexOf('@');
                gmail= sh[j].substring(0,i);
                System.out.println(gmail);
                }

        }

    }

错误显示为

线程“main”java.lang.Error 中的异常:未解决的编译问题: 局部变量 sh 可能没有初始化

【问题讨论】:

  • sh 可能尚未初始化
  • 这个错误几乎可以解释出了什么问题
  • 这里的for循环到底是什么?

标签: java arrays string


【解决方案1】:

你必须初始化你的 String 数组。

String[] sh = new String[numbefOfIndexes];

在 Java 中,没有办法在初始化之前使用数组。

请记住,即使您像我一样初始化它,默认值也是null,因为它是一个对象数组,为避免这种情况,您可以像下面这样直接填充数组

String[] sh = {"valueOne", "valueTwo"};

【讨论】:

    【解决方案2】:

    基本上你想要

    • 做无限循环(while)
    • 读入一行输入
      • 如果等于“exit”,退出
      • 否则在“@”处拆分并打印第一部分或
      • 找到“@”字符的索引并打印一个子字符串(你做了什么)。两种方法的效果是一样的。这只是一个人情问题。

    【讨论】:

      【解决方案3】:

      在初始化之前使用 sh[j] 的 for 循环出现错误。

      您应该更改您的代码以从用户那里获取输入,并将其作为字符串而不是字符串数组进行检查。我只是根据你的代码给出解决方案。将您的代码更新为:

                  Scanner take =new Scanner(System.in);
                  int j=0;
                  String sh;
                  String gmail;
                  while(!(sh = take.nextLine()).equals("exit"))
                  {
      
                     int i=sh.indexOf('@');
                     gmail= sh.substring(0,i);
                     System.out.println(gmail);
                 }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-05-08
        • 2017-07-16
        • 1970-01-01
        • 2015-09-01
        • 1970-01-01
        • 2020-10-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多