如何在java中进行此输出?

时间:2018-03-29 01:11:56

标签: java

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

输出:

Jamaica

 amaica

  maica

   aica

    ica

     ca

      a

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

4 个答案:

答案 0 :(得分:2)

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

第二:您需要打印与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");

    }
}

答案 1 :(得分:2)

我会使用两个正则表达式,第一个在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

答案 2 :(得分:0)

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("");
    }
}

希望有帮助

答案 3 :(得分:0)

请尝试以下代码:

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);            
        }