首页 > 解决方案 > 打印字符串模式的 Java 程序

问题描述

如果输入字符串是“ADMINISTRATIONS”,则模式应该是这样的 A DM INI STRA TIONS

最后一行应该完全填满

如果输入字符串是“COMPUTER”,则模式应该是这样的 C OM PUT ER**

不完整的最后一行应该用 * 填充

我有图案,但无法打印星星。

    int k=0;
    String str = "computer";
    String[] s=str.split("\\B");
    for(int i=0; i<s.length;i++){
        for(int j=0; j<i;j++){
            if(k<s.length){
        System.out.println(s[k]);
        k++;
            }
    }
        System.out.println();

帮我解决这个问题。

标签: javastring

解决方案


在没有提供代码时编写 - 之前它被标记为C

以问题陈述中描述的方式打印字符串是简单的递归。这是执行此操作的C等效代码(因为此问题也已在Java中标记):

  #include<stdio.h>

  int i=1;

  void fun(char c[])
  {
      int j=0;

      while((j<i)&&(c[j]))
      {
          printf("%c",c[j++]);
      }
      while((c[j]=='\0')&&(j<i))
      {
          printf("*");
          ++j;
      }

      ++i;
      if(c[j])
      {
          printf(" ");
          fun(c+j);
      }
  }

  int main(void)
  {
      char c[]="computer";
      fun(c);
      return 0;
  }

输出:

 c om put er**

如果要替换\0检查,则可以使用字符串的长度作为检查,因为我不知道 Java 中是否存在空终止。


推荐阅读