Я хочу, чтобы пользователь вводил строку в массив. Каков самый быстрый способ сделать это и проверить, не вписывается ли строка, которую они вменяют, какие-либо не-алфавитные символы? (Например, #, &, 8, [, 0) Большое спасибо!Как мне искать строку массива для символов, отличных от алфавита?
ответ
Вы могли бы сделать это следующим образом:
int size = 1024;
String[] strs = new String[size];
Scanner sc = new Scanner(System.in);
for (int i=0; i<size; i++) {
String input = sc.next();
if (input.matches("[A-Za-z]")) {
strs[i] = input;
} else {
strs[i] = "";
}
}
sc.close();
Я надеюсь, что это помогает.
Что делает sc.close(); делать? – babyguineapig11
Он закрывает сканер после его использования. Поэтому, если вы закончили чтение, вы должны закрыть свой сканер. –
Вы можете использовать Scanner
принимать на входе пользователя:
String alphabet = "abcdefghijklmnopqrstuvxyz";
int arraySize = 10;
String[] charArray = new String[arraySize];
Scanner sc = new Scanner(System.in);
for (int i=0; i<arraySize; i++) {
String input = sc.next();
if (!alphabet.contains(input) {
charArray[i] = input;
} else {
charArray[i] = "";
}
}
Используйте капитал 'Scanner': Как в моем коде. 'Сканер sc = новый сканер (System.in);' – jiaweizhang
. Разве ваш 'array' объявлен (и инициализирован) до того, как вы попытаетесь использовать' array.length'? – jiaweizhang
Да, я уже инициализировал его. – babyguineapig11
Для начала, ваш вопрос довольно расплывчатый. Оператор вроде: «Я хочу, чтобы пользователь вводил строку в массив». Я думаю, что, скорее всего, это должно быть: «Я бы хотел, чтобы строковый ввод пользователя был помещен в массив». Обычно Пользователь вашего приложения не вводит строки в массив, это задача для выполнения вашего кода. Ожидается, что все ваши пользователи будут поставлять одну или несколько строк, что, конечно же, говорит о проблеме .... Сколько строк ожидается пользователю? Хорошо, давайте предположим, что он неограничен. Является ли массив уже существующим и уже содержит строковые элементы? Предположим, кого это волнует.
Я даже не собираюсь спрашивать, как и где Пользователь должен ввести эти нужные строки. Является ли это из консоли или графического интерфейса какого-то типа, для меня в данный момент не имеет значения, потому что это, очевидно, не имеет значения для вас. Мы просто хотим, чтобы работа была выполнена, и это круто. Вот где код, который вы уже пробовали, полезен тем, кто пытается помочь. Знаешь, помоги тем, кто поможет тебе.
Давайте начнем с нового и предположим, что наш массив, который должен удерживать пользовательские строки ввода, еще не установлен. Назовем его inputStringArray, и у нас есть переменная, которая должна содержать ввод строки от пользователя, назовем его inputString. Код, который слишком прокомментирован, должен заботиться о бизнесе.
Создать новый проект Java-приложение под названием UserInputToArray скопируйте/вставьте следующий код над авто созданного класса (в NetBeans в любом случае):
public class UserInputToArray {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// Where you declare or establish your input strings
// array is up to you as long as the scope of the
// varaible can reach our call to the addUserInputToArray
// method below.
String[] inputStringArray = {};
// How you acquire the User's input string is up to you...
String inputString = "Hello There";
// Pass our input string array and user string input to
// our addUserInputToArray() method and let it modify
// or rather append the User input string to our inputStringArray
// array variable.
inputStringArray = addUserInputToArray(inputStringArray, inputString);
// This is used just to test our input string array so that
// you can see that the User input string has been successfully
// appended to the inputStringArray array. you can omit it.
for (int i = 0; i < inputStringArray.length; i++){
System.out.println(inputStringArray[i]);
}
}
/**
* This method is used to append a User Input String to our
* inputStringArray[] variable.
* @param stringArray : (String Array) This is where you supply the
* input string array variable.
*
* @param inputString : The User's supplied input string is provided here.
*
* @return : A String array with the Users string input appended to it but
* only if it is found that the string only contains Alphabetic characters
* (a to z and A to Z and spaces).
*/
public static String[] addUserInputToArray(String[] stringArray, String inputString) {
// Get the length of our input string array and add 1.
//This is used so we don't have to type stringArray.length
//all the time.
int length = (stringArray.length + 1);
// Here we use the string matches method with a small regex
// expression string to make sure only alphabetic charaters are
// contained within the supplied User input string. Expression
// breakdown:
// (?i) Ignore letter case (we don't need to worry about that in this case).
// [ a-z] Match any characters that are either a to z or a space.
// * Any number of characters (strings can be any length).
// () All enclosed in a set of brackets to create a group. Not
// really required in this case (just a habbit).
if (inputString.matches("((?i)[ a-z]*)")) {
// So, our acquired User input string has passed requirements and
// now it's time to append that string to our input string array.
// As you know there is no such thing as appending to an array so
// we need to simulate it and to do that we need to create a temporary
// array, increase its length to what is desired which in our case is
// once (1) every time this method is called, and then copy our passed
// original input string array into it while preserving the length of
// our temporary array and then finally forcing our original input
// string array to be our temporary array. Now we have a input string
// array which is one element size bigger than when we started and ready
// to have string data placed into it.
String[] tmp = new String[length];
if (stringArray.length != 0) {
System.arraycopy(stringArray, 0, tmp, 0, Math.min(stringArray.length, tmp.length));
}
stringArray = tmp;
// Append our User input string to the array.
stringArray[length-1] = inputString;
}
return stringArray;
}
}
Я надеюсь, что это поможет вам немного.
- 1. Нужен ли мне web.config для символов, отличных от ASCII?
- 2. Как мне искать строку для определенных символов и заменять их?
- 3. Только для удаления символов, отличных от ASCII
- 4. Как мне искать строку для шаблона?
- 5. Как фильтровать строку Java для получения только символов алфавита?
- 6. Проверить строку для значений, отличных от разрешенных. Java
- 7. Как совместить строку символов алфавита, но не цифры в Python
- 8. chr для символов, отличных от ASCII, в Python
- 9. Как мне grep для всех символов, отличных от ASCII, в UNIX
- 10. Задание символов, отличных от ASCII для NSIS 'LangString
- 11. Markdown, Perl и кодировка символов: рендеринг символов, отличных от ASCII
- 12. C: Программа для удаления символов, отличных от алфавитных
- 13. Проверить строку для заданного алфавита
- 14. Как искать строку для набора символов emacs-lisp
- 15. Хорошие представления ASCII для символов, отличных от ASCII?
- 16. Как отсортировать каждую строку символов массива символов
- 17. Regex для проверки удаления символов, отличных от алфавитов
- 18. Получение символов, отличных от ASCII, для работы в функциях Ren'Py
- 19. JavaFX - get KeyEvent для символов, отличных от ASCII
- 20. регулярное выражение для удаления всех символов, отличных от клавиатуры.
- 21. Ограничение Postgresql для проверки символов, отличных от ascii
- 22. найти текст для символов, отличных от ASCII, в python
- 23. Мне нужно сделать программу, которая использует ASCII для отображения алфавита
- 24. Стоп ord() от использования символов, отличных от букв, - caesar cypher
- 25. Bash: Преобразование символов, отличных от ASCII, в ASCII
- 26. Как включить чтение символов, отличных от ascii, в сервлетах
- 27. Обнаружение символов алфавита в Python
- 28. Как мне искать «чистую черепицу» в приложении для царапин? (PHP)
- 29. Как создать набор символов, отличных от UTF-8
- 30. Комбинации алфавита в массив символов
Добро пожаловать в SO! Что вы подразумеваете под самым быстрым и почему это важно? – Kenney