2017-01-04 2 views
-3

Я новичок в Java, и я пытаюсь настроить хэштеги на мой текст. Например, если я напишу сообщение привет, как дела? Я хочу, чтобы он печатался заглавными буквами и что хэштеги настраиваются в зависимости от того, сколько символов я печатаю. Есть ли у вас какие-либо предложения о том, что я могу использовать, чтобы это произошло?Как настроить символы в JAVA

public void addMessage() { 
    System.out.println("Write message followed by a text: "); 
    String message = readString(); 
    System.out.println("############################################################"); 
    System.out.println("#               #"); 
    System.out.println("#" + message.substring(7).toUpperCase() + "     #"); 
    System.out.println("#             #"); 
    System.out.println("############################################################"); 
} 
+7

Для вашей информации символ «#» называется «хеш», а не «hashtag». –

+0

Используйте ['String # lenght()'] (https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#length--) на 'message.substring (7) 'и некоторую базовую математику для вычисления количества хешей, которые вы хотите распечатать. – Travis

+1

Вы можете использовать ['String.format()'] (https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#format (java.lang.String,% 20java .lang.Object ...)). –

ответ

0

Все, что вам нужно сделать, это рассчитать длину строки и указать количество хешей, указанное количество раз.

Код, указанный ниже, должен быть полезным.

String hashs(int len) { 
    return new String(new char[len]).replace("\0", "#"); 
} 
int textLen = message.length(); 
System.out.println(hashs(len + 2)); 
System.out.println("#" + message.toUpperCase() + "#"); 
System.out.println(hashs(len + 2)); 
+0

Отличный способ генерации строки определенной длины с одинаковыми символами :) – Tobb

0

Что-то вроде этого:

public void addMessage() { 
    System.out.println("Write message followed by a text: "); 
    String message = readString(); 

    System.out.println(createHashes(input.length() + 2)); 
    System.out.println("#" + createSpaces(input.length()) + "#"); 
    System.out.println("#" + input.toUpperCase() + "#"); 
    System.out.println("#" + createSpaces(input.length()) + "#"); 
    System.out.println(createHashes(input.length() + 2)); 
} 

private String createHashes(final Integer numberOfHashes) { 
    return new String(new char[numberOfHashes]).replace("\0", "#"); 
} 

private String createSpaces(final Integer numberOfSpaces) { 
    return new String(new char[numberOfSpaces]).replace("\0", " "); 
} 

Пример ввода/вывода:

вход: Эй, вы!

выход:

########### 
#   # 
#HEY, YOU!# 
#   # 
########### 

вход: Как дела?

выход:

################ 
#    # 
#HOW YOU DOIN'?# 
#    # 
################ 
0

Вы можете использовать Formatter.

String[] strings = {"one", "two", "three"}; 
    for(String item: strings){ 
     System.out.printf("#%20s  #\n", item.toUpperCase()); 
    } 

Таким образом, строковая печать всегда будет иметь одинаковую ширину. Для этого примера выходной сигнал:

Смежные вопросы