【问题标题】:Java character array initializerJava 字符数组初始化器
【发布时间】:2013-01-08 01:01:36
【问题描述】:

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

"创建一个 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]);
}

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

【问题讨论】:

标签: java arrays character initializer


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    您做错了,您首先使用空格作为分隔符使用 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();
    

    【讨论】:

      【解决方案3】:
      char array[] = new String("Hi there").toCharArray();
      for(char c : array)
          System.out.print(c + " ");
      

      【讨论】:

      • 一个直接的代码答案为 OP 提供了关于您的分辨率或为什么有效的少量信息。请给出某种解释或叙述。
      【解决方案4】:

      这里是代码

      String str = "Hi There";
      char[] arr = str.toCharArray();
      
      for(int i=0;i<arr.length;i++)
          System.out.print(" "+arr[i]);
      

      【讨论】:

        【解决方案5】:

        您可以通过以下方法简单地实现解决方案..

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

        【讨论】:

          【解决方案6】:

          您已初始化并将您的 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
          

          .

          【讨论】:

            【解决方案7】:

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

            类似的东西-

            char array[] = "Hi there".toCharArray();
            
            //Print with white spaces
            for(char c : array)
               System.out.print(c + " ");
            

            【讨论】:

              猜你喜欢
              • 2021-05-10
              • 1970-01-01
              • 2011-12-11
              • 1970-01-01
              • 2011-03-20
              • 2013-07-05
              • 2013-11-28
              • 1970-01-01
              相关资源
              最近更新 更多