Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串数组连接的问题_Java_Arrays_String_Concatenation - Fatal编程技术网

Java 字符串数组连接的问题

Java 字符串数组连接的问题,java,arrays,string,concatenation,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) {

我正在尝试将数组中的所有字符串连接起来。例如,我想把
[“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];
        }


    }
为什么会这样?I初始化行
字符串resultat中的变量


谢谢。

不,您已经声明了变量初始化意味着您已给它一个初始值。您可以通过将该行替换为:

String resultat = "";
或者,您可以通过两个单独的步骤来完成:

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

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

不,您已经声明了变量初始化意味着您已给它一个初始值。您可以通过将该行替换为:

String resultat = "";
或者,您可以通过两个单独的步骤来完成:

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

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

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

Java 8语言规范第4.12.5节规定:

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


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

Java 8语言规范第4.12.5节规定:

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


您应该初始化字符串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);
    }
}
import java.util.Scanner;
导入java.util.ArrayList;
公共类Laggaihop
{
专用静态扫描仪=新扫描仪(System.in);
公共静态void main(字符串[]args)
{
系统输出打印(“Ange antal ord:”);
字符串输入=scanner.nextLine();
int antal=Integer.parseInt(输入);
字符串[]ordlista;
ordlista=新字符串[antal];
for(int i=0;i

这将解决您的问题。

您应该初始化字符串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);
    }
}
import java.util.Scanner;
导入java.util.ArrayList;
公共类Laggaihop
{
专用静态扫描仪=新扫描仪(System.in);
公共静态void main(字符串[]args)
{
系统输出打印(“Ange antal ord:”);
字符串输入=scanner.nextLine();
int antal=Integer.parseInt(输入);
字符串[]ordlista;
ordlista=新字符串[antal];
for(int i=0;i

这应该可以解决您的问题。

基于这个问题,我认为OP混淆了初始化和声明…基于这个问题,我认为OP混淆了初始化和声明。。。