2012-05-14 5 views
1

Вы можете помочь мне с маской ввода?Входная маска с консоли

Формат строки = "XXX-XXX"

Х представляет собой пользовательский ввод с клавиатуры консоли /.

Я все еще хочу показать тире (-), пока пользователь вводит строковый формат.

Помогите мне решить мою проблему?

+0

Насколько мне известно, это невозможно, используя только стандартный ввод. Возможно, вам понадобится GUI-решение. – chrisdotcode

+0

Это невозможно сделать в консольном проекте. Где вы хотите использовать его, рабочий стол или веб-приложение? –

+0

Как насчет проверки ввода в отношении регулярного выражения? –

ответ

2

Это невозможно, чтобы показать всю маску во время набора текста, но то, что вы можете сделать, это прочитать отдельные символы в в то время, и когда вы получите в соответствующих местах, выведите тире.

Редактировать: Возможно перемещение курсора в консоли, таким образом вы можете выводить маску, а затем маневрировать курсором соответственно (в зависимости от того, сколько клавиш было нажато).

Я только что нашел этот here:

char escCode = 0x1B; 
int row = 10; int column = 10; 
System.out.print(String.format("%c[%d;%df",escCode,row,column)); 

Что следует переместить курсор в позицию 10,10 на консоли.

+0

Я собираюсь использовать его на рабочем столе, и я не использую графический интерфейс. –

+0

Насколько мне известно, мой метод возможен в командной строке. –

+1

@Liam, что, если мы напишем на консоль маску и сбросим положение курсора на 0? Это непростая задача. Но это возможно. –

0

К сожалению, для java нет ввода-вывода консоли без буферизации. Вы должны связать ругательства через JNI вероятно:

http://plindenbaum.blogspot.com/2008/01/java-native-interface-jni-notebook.html

+0

Итак, я собираюсь использовать console.nextLine(). Но когда тире уже есть. После того, как я вставляю первый символ, он будет прыгать на третий символ (рядом с тире (-)) и так далее. –

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