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混淆了初始化和声明。。。