将文本输出为半菱形

Outputting text as a half diamond

作业是输入文本,然后在终端中打印出半个菱形。示例:

T
 TE
  TEX
   TEXT
  TEX
 TE
T

我真的结束了它的最后一部分。这是我的代码:

import javax.swing.*;

// The "number 4" class.
public class number4
{
    public static void main (String[] args)
    {            
        String word = JOptionPane.showInputDialog ("Enter a word:");
        int len = word.length ();
        String SPACES = "                              ";       
        for (int i = 0 ; i < len; i++)
        {           
            System.out.print (word.substring (0,i) + System.lineSeparator());
            System.out.print(SPACES.substring(0,i));            
        }    
        String SPACES2 = "      ";          
        for (int g = len ; g>=0; g--)
        {           
            System.out.print (word.substring (0,g) + System.lineSeparator());  
            System.out.print(SPACES2.substring(g,g+1));              
        }        
        System.out.println();
    } // main method
} //number 4

问题在:System.out.print(SPACES.substring(g,g+1));(半菱形的最后一部分)

目前看起来是这样的:

T
 TE
  TEX
   TEXT
  TEX
  TE
  T

同样适用于 Java。假设 x = 'TEXT'len(x) = 4。我们将遍历索引 [0, 1, ..., 6]。这与您编写 for(int i = 0; i<2*len; i++) 相同。如果当前索引小于文本长度我们将增加间距,如果它大于我们将减小间距。

for i in range(2*len(x)-1):
    if i < len(x): 
        y = ' '*i + x[0:i+1]
    else: 
        y = ' '*(2*len(x)-i-2) + x[0:len(x)-i-1]
    print(y)

T
 TE
  TEX
   TEXT
  TEX
 TE
T

已修复。这是新代码: 我只需要将 Spaces.substring 放在 for 循环 word.substring 之前

import javax.swing.*;

// The "number 4" class.
public class number4
{
    public static void main (String[] args)
    {            
        String word = JOptionPane.showInputDialog ("Enter a word:");
        int len = word.length ();
        String SPACES = "                              ";       
        for (int i = 0 ; i < len; i++)
        { 
            System.out.print(SPACES.substring(0,i));            
            System.out.print (word.substring (0,i) + System.lineSeparator());           
        }            
        for (int g = len ; g>=0; g--)
        {          
            System.out.print(SPACES.substring(0,g));           
            System.out.print (word.substring (0,g) + System.lineSeparator());              
        }        
        System.out.println();
    } // main method
} //number 4