Java ввод только букв

Ограничение ввода букв

Добрый вечер, уважаемые знатоки Java-языка! Недавно начали разбираться с этим языком, так-что за возможную не рациональность кода — за ранее извиняюсь.
Простая программа, которая считает сумму и разность двух чисел. Нужно поставить ограничение на возможность вводить БУКВЫ в значение А и В. Пробовала сделать через if и JOptionPane.showMessageDialog, что бы выводила сообщение, о не корректности ввода данных, на событие кнопки — не получилось.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class test extends JFrame { private JButton bSum; private JButton bRaz; private JLabel lA,lB,lC; private JTextField tfA,tfB,tfC; private int a,b,c; test(String s) { super(s); setLayout(null); setSize(300, 250); setVisible(true); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setResizable(true); lA=new JLabel("a:"); lA.setBounds(20, 85, 40, 20); add(lA); tfA=new JTextField(); tfA.setBounds(50, 85, 50, 20); add(tfA); lB=new JLabel("b:"); lB.setBounds(20, 125, 40, 20); add(lB); tfB=new JTextField(); tfB.setBounds(50, 125, 50, 20); add(tfB); lC=new JLabel("c:"); lC.setBounds(20, 165, 40, 20); add(lC); tfC=new JTextField(); tfC.setBounds(50, 165, 50, 20); add(tfC); bSum=new JButton("Сумма"); bSum.setBounds(140,45,130,30); add(bSum); bSum.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { a=Integer.parseInt(tfA.getText()); b=Integer.parseInt(tfB.getText()); c=a+b; tfC.setText(String.valueOf(c)); }}); bRaz=new JButton("Разница"); bRaz.setBounds(140,90,140,30); add(bRaz); bRaz.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { a=Integer.parseInt(tfA.getText()); b=Integer.parseInt(tfB.getText()); c=a-b; tfC.setText(String.valueOf(c)); } }); } public static void main(String[] args) { new test("Калькулятор"); } }

Источник

Читайте также:  background-repeat

Ввод только букв в EditText

Здравствуйте, мне нужно вводить в EditText только буквы (т.е. отсетить цифры и спец символы), есть ли готовый такой фильтр к android:inputType или нужно самому в коде это реализовывать?

Ввод в один EditText и авто-вычисление в двух других EditText
Всем привет. Есть три поля EditText,виртуальные клавиатуры у всех заблокированы,а ввод чисел в.

Ввод в edittext double
Нужно сделать так чтобы в edittext можно было ввести с клавиатуры или из буфера только double то.

Ввод текста в EditText
Всем здравствуйте. Я начал недавно программировать под Android. И столкнулся с проблемкой, ответ.

Ограничение EditText на ввод максимальных int и float
Есть диалог в котором можно ввести пару чисел в EditText’ах, из первого из них будет добываться int.

Лучший ответ

Сообщение было отмечено Onregs как решение

Решение

ЦитатаСообщение от Onregs Посмотреть сообщение

Здравствуйте, мне нужно вводить в EditText только буквы (т.е. отсетить цифры и спец символы), есть ли готовый такой фильтр к android:inputType или нужно самому в коде это реализовывать?

Можно сделать вот такой фильтр:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EditText edittext = (EditText) findViewById(R.id.editText1); edittext.setFilters(new InputFilter[] { new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { if(source.equals("")){ // for backspace return source; } if(source.toString().matches("[a-zA-Zа-яА-Я]+")){ return source; } return ""; } } }); } }

Источник

Как запретить ввод символов в textfield java

Для запрета ввода символов можно использовать класс InputVerifier . Он предоставляет метод verify() , который проверяет введенные данные и возвращает true или false, в зависимости от того, прошла ли проверка.

Например нижеприведенный код не позволит перейти ко второму полю, пока в первом будут символы кроме букв алфавита :

import javax.swing.*; import java.awt.*; import java.util.regex.Pattern; public class App  public static void main(String[] args)  InputVerifier verifier = new InputVerifier()  public boolean verify(JComponent input)  JTextField textField = (JTextField) input; return Pattern.matches("[a-zA-Z]+", textField.getText()); > public boolean shouldYieldFocus(JComponent source, JComponent target)  return verify(source); > >; JTextField field1 = new JTextField("only a-z and A-Z"); JTextField field2 = new JTextField(); field1.setInputVerifier(verifier); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(field1, BorderLayout.NORTH); frame.getContentPane().add(field2, BorderLayout.SOUTH); frame.pack(); frame.setVisible(true); > > 

Источник

Регулярные выражения. Оставить в строке только буквы и цыфры

Здравствуйте. Помогите, пожалуйста, решить проблему. В строке нужно оставить только латинские буквы и цыфры. Хочу сделать это с помощью регулярок.

Регулярные выражения. Требуется оставить в строке только буквы
Требуется оставить в строке только буквы, вариант решения такой: Re = /()/g; S =.

Регулярные выражения: как в строке оставить только то, что в кавычках
добрый вечер! есть строка: ывыпп ‘аввпрар’+’ууппуп’+’#533опрп’ упупупуп мне нужно что бы в ней.

Оставить в строке только буквы
Всем привет=) Прошу помочь разобраться с такой проблемой мне нужно в строке оставить только буквы.

Регулярные выражения — вводить только буквы
Добрый день. Как составить регэксп, согласно которому в инпут можно вводить только буквы (англ-яз.

Оставить в строке только гласные буквы
Заданы М строк символов, которые вводятся с клавиатуры. Каждая заданная строка представляет собой.

Регулярные выражения: только латинские буквы и пробел
Нужно составить регулярное выражение: только латинские буквы и пробел

Оставить в строке только слова, начинающиеся на буквы «A», «D», «K», «P».
Дана строка символов до точки. Оставить в ней только слова, начинающиеся на буквы «A», «D», «K».

Оставить только согласные буквы в вводимой строке
Программа должна оставлять только согласные буквы в вводимой строке uses crt; var s,s1:string;.

Источник

Как ввести с консоли только один символ?

Выдает ошибку типа Incompatible types. Я понимаю что я пытаюсь запихнуть в char целую строку, но как тогда мне вписать только один символ?

вводить только один символ и притом только букву
Можно ли как-то сделать, чтобы можно было вводить только один символ и притом только букву. Если.

Почему если в консоли ввести вместо числа любой символ, программа впадает в бесконечный цикл?
Всем привет! Недавно начал изучать С++ и столкнулся с проблемой при создании калькулятора. Если в.

Ввести значение только один раз
Всем привет) Задача даны действительные числа а0 а6 получить для х=1; 3; 4 p(x + 1) — p(x).

Если ввести один символ, то итерация цикла выполняется сразу два раза подряд
while (getchar()) printf("Итерация цикла.\n"); Если ввести 1-ин символ, то итерация цикла.

Лучший ответ

Сообщение было отмечено darkangel24 как решение

Решение

public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Input symbol: "); String b = scanner.next(); char a = b.charAt(b.length()-1); // последний символ стороки System.out.println("Output: " + a); }
import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub InputStreamReader scanner = new InputStreamReader(System.in); char a = (char) scanner.read(); System.out.println(a); } }

Источник

Оцените статью