7

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

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


我制作的程序:

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

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

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

4

7 回答 7

18

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

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

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

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

于 2013-01-24T10:04:44.797 回答
1

你做错了,你首先使用空格作为分隔符使用 String.split() 分割字符串,并用字符填充 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();
于 2013-01-24T10:05:18.307 回答
1
char array[] = new String("Hi there").toCharArray();
for(char c : array)
    System.out.print(c + " ");
于 2017-03-15T16:32:45.990 回答
0

这是代码

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

for(int i=0;i<arr.length;i++)
    System.out.print(" "+arr[i]);
于 2013-01-24T10:05:56.353 回答
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));
    }
}
于 2013-01-24T10:08:53.777 回答
0

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

当您尝试打印数组中的每个元素时,您会打印一个空字符串,因为您将“无”添加到一个空字符串,并且因为没有将输入字符串中的字符添加到数组的功能。不过,您已经正确实施了它周围的一切。这是在初始化数组之后,但在遍历数组以打印出元素的 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

.

于 2020-06-23T06:22:48.033 回答
0

另一种简单的方法是使用字符串文字并在声明本身中将其转换为 charArray。

像这样的东西-

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

//Print with white spaces
for(char c : array)
   System.out.print(c + " ");
于 2021-08-12T20:36:11.107 回答