繁体   English   中英

如何使此输出在Java中发生?

[英]How do I make this output happen in java?

我是一个初学者,我想使用for循环和下标输出以下内容,但不确定。

输出:

Jamaica

 amaica

  maica

   aica

    ica

     ca

      a

为了实现此输出,我该怎么办?

第一:您需要循环生成n行,这是数组的长度。

第二:您需要打印与row - 1相同的空格row - 1次。

第二:您需要从row - 1开始打印字符row - 1数字到字符串的长度。

最终的解决方案将是:

public class MyClass {
    public static void printStr(String str) {
        int i,j;
        for (i = 0; i < str.length();i++) {
            for(j = 0; j < i; j++) {
                System.out.print(" ");
            }
            for(j = i; j < str.length();j++) {
                System.out.print(str.charAt(j));
            }
          System.out.println("");
        }
    }
    public static void main(String args[]) {
        MyClass.printStr("Jamaica");

    }
}

我将使用两个正则表达式 ,第一个在String充满空白时终止循环。 第二个将循环正文中的第一个非空白字符替换为空白(在打印当前String值之后)。 并且,如果String可能为空,则应注意这一点。 喜欢,

String s = "Jamaica"; 
if (!s.isEmpty()) {
    while (!s.matches("\\s+")) {
        System.out.println(s);
        s = s.replaceFirst("\\S", " ");
    }
}

输出(根据要求)

Jamaica
 amaica
  maica
   aica
    ica
     ca
      a
public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    String s = scan.next(); //input through scanner class
    int len = s.length();
    for(int i=0;i<len;i++){
        for(int j=0;j<i;j++){
            System.out.print(" ");
        }
        for(int j=i;j<len;j++){
            System.out.print(s.charAt(j));
        }
        System.out.println("");
    }
}

希望有帮助

尝试以下代码:

StringBuilder country = new StringBuilder("Jamaica"); 
        for(int i=0; i< country.length();i++){
            if(i > 0)
            {
                for(int j=0;j<i;j++){
                    country.setCharAt(j,' ');                    
                }                
            }
            System.out.println(country);            
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM