【问题标题】:Outputting text as a half diamond将文本输出为半菱形
【发布时间】:2018-03-12 02:18:09
【问题描述】:

分配是输入文本,然后在终端中打印为半个菱形。示例:

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 string substring joptionpane


【解决方案1】:

Java 也是如此。假设x = 'TEXT'len(x) = 4。我们将遍历索引 [0, 1, ..., 6]。这与您写for(int i = 0; i&lt;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

【讨论】:

  • 您能否修改我的代码并修复错误,而不是创建一个全新的程序。我必须用我的对不起
【解决方案2】:

修复它。这是新代码: 我只需要在 for 循环中将 Spaces.substring 放在 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

【讨论】:

    猜你喜欢
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 2023-03-22
    相关资源
    最近更新 更多