2014-11-08 107 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

相關問題