字符串数组连接的问题

时间:2015-03-28 22:42:42

标签: java arrays string concatenation

我正在尝试连接数组中的所有字符串。我希望例如["a","b","c"]成为"abc"。这是我的代码:

import java.util.Scanner;
import java.util.ArrayList;

public class Laggaihop 
{
    private static Scanner scanner = new Scanner( System.in );
    public static void main(String[] args)
    {
        System.out.print("Ange antal ord: ");
        String input = scanner.nextLine();
        int antal = Integer.parseInt(input);
        String[] ordlista;
        ordlista = new String[antal];
        for(int i = 0; i < antal; i++){
            System.out.print("Ange ord: ");
            String nyttelement = scanner.nextLine();
            ordlista[i] = nyttelement;
        }
        String resultat;
        for(int i = 0; i < antal; i++){
            resultat = resultat+ordlista[i];
        }


    }

我收到以下错误:

Laggaihop.java:21: error: variable resultat might not have been initialized
            resultat = resultat+ordlista[i];

这是为什么?我初始化行String resultat;

中的变量

感谢。

4 个答案:

答案 0 :(得分:3)

没有声明变量。 初始化表示您已为其指定初始值。您可以通过将行替换为:

来完成此操作
String resultat = "";

或者你可以分两步完成:

String resultat; //declaration
resultat = "";   //initializiation

据我所知,仅Java 自动初始化字段。对于局部变量,它的自动化程度较低。可能是因为这被认为容易出错。

答案 1 :(得分:1)

所有局部变量在使用前都需要进行初始化。这样做将解决编译错误。在您的程序中,您已声明变量resultat但尚未初始化它。

Java 8语言规范中的第4.12.5节说明:

  

局部变量(§14.4,§14.14)必须在使用前通过初始化(§14.4)或赋值(§15.26)显式赋予值,其方式可以使用明确规则进行验证赋值(§16(定义赋值))。

答案 2 :(得分:1)

String resultat;
resultat=resultat+something;
                   ^what is value in here?

或者

String resultat; //declared
resultat="something";//initialized

答案 3 :(得分:0)

您应该初始化String resultat。最终的代码如下:

import java.util.Scanner;
import java.util.ArrayList;

public class Laggaihop
{
    private static Scanner scanner = new Scanner( System.in );
    public static void main(String[] args)
    {
        System.out.print("Ange antal ord: ");
        String input = scanner.nextLine();
        int antal = Integer.parseInt(input);
        String[] ordlista;
        ordlista = new String[antal];
        for(int i = 0; i < antal; i++){
            System.out.print("Ange ord: ");
            String nyttelement = scanner.nextLine();
            ordlista[i] = nyttelement;
        }
        String resultat="";
        for(int i = 0; i < antal; i++){
            resultat = resultat+ordlista[i];
        }
        System.out.println(resultat);
    }
}

这可以解决您的问题。