Java字符数组初始化器

时间:2013-01-24 10:02:10

标签: java arrays character initializer

我尝试制作一个分隔字符的程序。 问题是:

“创建一个char数组并使用数组初始化程序用字符串'Hi there'中的字符初始化数组。使用for-statement显示数组的内容。用空格分隔数组中的每个字符”


我制作的节目:

String ini="Hi there";
  char[] array=new  char[ini.length()];


  for(int count=0;count<array.length;count++){

  System.out.print(" "+array[count]);


  }

我该怎么做才能解决这个问题?

6 个答案:

答案 0 :(得分:15)

以下是将String转换为char数组的方法:

String str = "someString"; 
char[] charArray = str.toCharArray();

我建议您在编程时使用IDE,以便轻松查看类包含哪些方法(在这种情况下,您可以找到toCharArray())并编译错误,就像您上面的错误一样。您还应该熟悉文档,在本例中为this String documentation

此外,始终发布您正在获得的编译错误。在这种情况下,很容易发现,但如果不是,如果你没有在帖子中包含它,你将无法获得任何答案。

答案 1 :(得分:1)

你做错了,你首先使用空格作为分隔符使用String.split()拆分字符串,并用charcters填充char数组。

甚至更简单,只需在循环中使用String.charAt()来填充数组,如下所示:

String ini="Hi there";
  char[] array=new  char[ini.length()];

  for(int count=0;count<array.length;count++){
         array[count] = ini.charAt(count);
  System.out.print(" "+array[count]);
  }

或一个班轮将是

  String ini="Hi there";
  char[] array=ini.toCharArray();

答案 2 :(得分:1)

char array[] = new String("Hi there").toCharArray();
for(char c : array)
    System.out.print(c + " ");

答案 3 :(得分:0)

这是代码

String str = "Hi There";
char[] arr = str.toCharArray();

for(int i=0;i<arr.length;i++)
    System.out.print(" "+arr[i]);

答案 4 :(得分:0)

除了以上方式,您只需通过以下方法即可实现解决方案。

public static void main(String args[]) {
    String ini = "Hi there";
    for (int i = 0; i < ini.length(); i++) {
        System.out.print(" " + ini.charAt(i));
    }
}

答案 5 :(得分:0)

您初始化了String并将其声明为“ Hi there”,并使用正确的大小初始化了char []数组,然后在该数组的长度上开始了循环,该循环打印出一个空字符串并与正在查看的给定元素组合在数组中。在什么时候考虑了将字符串中的字符放入数组的功能?

当您尝试打印数组中的每个元素时,您将打印一个空字符串,因为您要在空字符串中添加“ nothing”,并且由于没有功能可以将输入字符串中的字符添加到字符串中数组。但是,您已正确实施了所有解决方案。这是在初始化数组之后但在遍历数组以打印出元素的for循环之前应该使用的代码。

for (int count = 0; count < ini.length(); count++) {
  array[count] = ini.charAt(count);
}

仅将for循环组合以在将每个字符放入数组后立即将其打印出来会更有效。

for (int count = 0; count < ini.length(); count++) {
  array[count] = ini.charAt(count);
  System.out.println(array[count]);
}

在这一点上,您可能想知道为什么当我可以仅使用对String对象ini本身的引用来打印它们时,为什么甚至将其放在char []中。

String ini = "Hi there";

for (int count = 0; count < ini.length(); count++) {
   System.out.println(ini.charAt(count));
}

绝对了解Java字符串。在我看来,它们令人着迷并且运作良好。这是一个不错的链接:https://www.javatpoint.com/java-string

String ini = "Hi there"; // stored in String constant pool

在内存中的存储方式不同于

String ini = new String("Hi there"); // stored in heap memory and String constant pool

,其存储方式不同于

char[] inichar = new char[]{"H", "i", " ", "t", "h", "e", "r", "e"};
String ini = new String(inichar); // converts from char array to string