Мне нужна помощь в изготовлении пустотелого бриллианта со словом в нем
Что мне нужно, так это небольшая модификация моего кода, чтобы каждая часть моего полого алмаза печатала букву слова "Ураган".
Мой код:
String st1="HURRICANE";
int a = 0;
for(int i = 5;i >= 1;i--){
for(int j = 1;j <= 9;j++){
if(j == i || (10 - i) == j)
{
System.out.print(st1.charAt(a)); \\needs change
}
else {
System.out.print(' ');
}
}
System.out.println();
}
for(int i =2;i <= 5;i++){
for(int j = 1;j <= 9;j++){
if(j == i || (10 - i) == j){
System.out.print(st1.charAt(a)); \\needs change
}
else
{
System.out.print(' ');
}
}
System.out.println();
}
Выход получается как:
H
H H
H H
H H
H H
H H
H H
H H
H
Мне нужно немного изменить свое выражение "charAt", чтобы оно выглядело так:
H
U U
R R
R R
I I
C C
A A
N N
E
Как мне сделать заявление для печати?
4 ответа
Стоит отметить, что приведенный пример работает только для строк той же длины, что и "HURRICANE". Превосходное решение будет работать для всех строк.
Частичное решение для вас, чтобы завершить, так как я думаю, что это ваша курсовая работа, и я не хочу, чтобы вы копировать / вставлять / не сдавать экзамены:P
public static void main(String[] args) {
String st1 = "HURRICANE";
char[] st1CharArray = st1.toCharArray();
int maxSpaces = st1CharArray.length / 2 + 1;
for (int i = 0; i <= st1CharArray.length / 2; i++) {
if (i == 0) {
System.out.println(getSpacesString(maxSpaces) + st1CharArray[i]);
} else {
System.out.println(getSpacesString(maxSpaces - i) + st1CharArray[i] + getSpacesString(i * 2 - 1)
+ st1CharArray[i]);
}
}
// Loop from st1CharArray.length / 2 + 1 and get the second half done.
}
private static String getSpacesString(int numberOfSpaces) {
StringBuilder strBuilder = new StringBuilder();
for (int i = 0; i < numberOfSpaces; i++) {
strBuilder.append(" ");
}
return strBuilder.toString();
}
//: Playground - noun: a place where people can play
import UIKit
var name : String = "HURRICANE"
var dimensions : Int = name.count - 1
var k : Int = 0
for rows in 0...dimensions{
for columns in 0...dimensions{
k = abs( (dimensions/2) - rows )
if columns == k || columns == dimensions - k{
print(Array(name)[rows], terminator: "")
}
else{
print(" ", terminator: "" )
}
}
print("")
}
Предположим, что в слове нечетное количество символов.
public static void main(String[] args) {
String str = "abrahadabra";
int n = str.length() / 2;
for (int i = -n, ch = 0; i <= n; i++, ch++) {
for (int j = -n; j <= n; j++)
if (Math.abs(i) + Math.abs(j) == n)
System.out.print(str.charAt(ch));
else
System.out.print(" ");
System.out.println();
}
}
Выход:
a
b b
r r
a a
h h
a a
d d
a a
b b
r r
a
См. Также: Печать ромбовидной формы с помощью Java
String st1="HURRICANE";
int a = 0;
for(int i = 5;i >= 1;i--){
for(int j = 1;j <= 9;j++){
if(j == i || (10 - i) == j)
{
System.out.print(st1.charAt(5-i));
}
else {
System.out.print(' ');
}
}
System.out.println();
}
for(int i =2;i <= 5;i++){
for(int j = 1;j <= 9;j++){
if(j == i || (10 - i) == j){
System.out.print(st1.charAt(3+i));
}
else
{
System.out.print(' ');
}
}
System.out.println();
}