将文本输出为半菱形
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
作业是输入文本,然后在终端中打印出半个菱形。示例:
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