2014-11-08 106 views
0

在我的程序中,用户将引入一个字符串(字符串A),并且我想要一个字符串的数组(AA [])来获取字符串A的每个单个字母。它说阵列如何创建一个没有值的字符串数组

import java.util.Scanner; 
public class arrays{ 
    public static void main(String[] args){ 
     String A,B,AA[]; 
     int a,cX,cY,cc,c; 
     Scanner scanner=new Scanner(System.in); 
     System.out.println("Introduce your text"); 
     A=scanner.nextLine(); 
     a=A.length(); 
     cX=0; 
     cY=cX+1; 
     cc=0; 
     for(c=0;c==a;c++){ 
      B=A.substring(cX,cY); 
      AA[cc]=B; 
      cc+=cc; 
      cX+=cX; 
      cY+=cY; 
     } 
    } 
} 

它说(错误),变量AA可能没有被初始化。 我要的是让阵列将所有的字母从字符串a ...

更新:

import java.util.Scanner; 
public class arrays{ 
    public static void main(String[] args){ 
     String A,B,AA[]; 
     int a,cX,cY,cc,c; 
     Scanner scanner=new Scanner(System.in); 
     System.out.println("Introduce your text"); 
     A=scanner.nextLine(); 
     a=A.length(); 
     cX=0; 
     cY=cX+1; 
     cc=0; 
     AA = new String[a]; 
     for(c=0;c==a;c++){ 
      B=A.substring(cX,cY); 
      AA[cc]=B; 
      cc+=cc; 
      cX+=cX; 
      cY+=cY; 
     } 
     System.out.println(AA[2]); 
    } 
} 

现在,当我把它打印出来,它说空。

回答

1

需要初始化AA到字符串A的长度:

AA = new String[A.length]; 

而且你的循环很奇怪。你可以把它改成:

for(c=0;c<a;c++){ 
     B=A.substring(c,c+1); 
     AA[c]=B; 
    } 
+0

(看更新)当它打印出来,它说空。 – ANDDEV 2014-11-08 13:14:01

+0

@ANDDEV我编辑我的答案与建议的方式来修复循环。 – Eran 2014-11-08 13:22:25

+0

谢谢,它的作品! – ANDDEV 2014-11-08 13:26:45

1
Instance and class variables are initialized to null (or 0), but local variables are not. 

的局部变量必须明确给出的数值在使用之前,方法是初始化或分配

0

还有一个更简单的方法:

public static void main(String[] args) 
{ 
    String inputString; //A 
    char [] inputStringCharacters; //AA 

    Scanner scanner=new Scanner(System.in); 
    System.out.println("Introduce your text"); 
    inputString=scanner.nextLine(); 

    inputStringCharacters = new char[inputString.length()]; 

    for(int i = 0; i < inputString.length(); i++) 
    { 
     inputStringCharacters[i] = inputString.charAt(i); 
    } 

    //print each character in AA 
    for (int i = 0; i < inputString.length(); i++) 
    { 
     System.out.println(inputStringCharacters[i]); 
    } 
} 

我也强烈建议您使用描述性的变量名,而不是像“CC,A,AA”的东西,等。如果你明确了变量应该包含什么,那么理解代码的逻辑就容易多了。

+0

我现在明白了,谢谢你的建议。 。 – ANDDEV 2014-11-08 13:26:10

+0

使用'inputString.toCharArray()'而不是手动填充数组不会更有意义吗?特别是如果你想显示“更容易”的东西? – Tom 2014-11-08 14:06:26

+0

是的,会的。我错过了那一个。 – Yves 2014-11-08 17:21:09

相关问题