Привет, все два метода, приведенные ниже, выглядят неправильно. Мне было интересно, если вы, ребята, можете помочь мне выяснить, почему?
Метод 1: логический isAlphanumeri c (ключ String)
* Этот метод должен проверять, является ли ключ String variable " "имеет по крайней мере одну букву и один номер. Если это так, то метод должен возвращать логическое значение TRUE. Однако это не так и возвращает значение FALSE.
Первый для l oop означает не проверять, есть ли хотя бы один символ в строковой переменной «ключ», который содержит букву. Выход из l oop и ввод второй для l oop, который должен проверять, есть ли какие-либо символы в строковой переменной 'key', которые являются ди git или числом.
оператор if в конце проверяет, есть ли ОБА как минимум 1 буква и 1 цифра в строковой переменной 'key'. *
Метод 2: логическое значение содержитNamePrefix (строковый ключ, строковое имя)
* Этот метод предназначен для проверки наличия префикса, по крайней мере, из 2 или более последовательных символов, начиная с первой буквы, найденной в строковой переменной «name», которая находится внутри строковой переменной «key»
Например:
Ключ строки = "Johnny_Ca sh"; Строка name = "Джонни";
метод должен затем возвращать логическое значение TRUE, так как "Jo" - это префикс из 2 символов (по крайней мере, 2 необходимо) в строковой переменной 'name', который также можно найти в переменной String «ключ». Следующее также вернет значение true: Joh, John, Johnn, Johnny.
Опять же, этот метод, к сожалению, не возвращает логическое значение TRUE ... *
HELP!
public class main {
public static void main(String[] args) {
String key = "Johnny_Cash";
String name = "Joh7";
System.out.println(isAlphanumeric(key));
System.out.println(containsNamePrefix(key, name));
}
public static boolean isAlphanumeric(String key) {
char currentCharacter;
boolean letterPresent = false;
boolean numberPresent = false;
boolean isAlphanumeric = false;
for(int i = 0; i < key.length(); ++i) {
currentCharacter = key.charAt(i);
if(Character.isLetter(currentCharacter)) {
letterPresent = true;
break;
}
}
for(int i = 0; i < key.length(); ++i) {
currentCharacter = key.charAt(i);
if(Character.isDigit(currentCharacter)) {
numberPresent = true;
break;
}
}
if(letterPresent && numberPresent) { // at least one letter and one number in key
isAlphanumeric = true;
}
return isAlphanumeric;
}
public static boolean containsNamePrefix(String key, String name) {
boolean keyContainsPrefix = false;
String prefix;
for(int i = 0; i < name.length(); ++i) {
prefix = name.substring(0, i+1);
if(key.contains(prefix)) {
keyContainsPrefix = true;
break;
}
}
return keyContainsPrefix;
}
}
ВЫХОД:
false true
/ * РЕДАКТИРОВАТЬ: Эй, ребята, извините, приведен фрагмент ПОЛНОГО кода по запросу. Извините, ребята, метод 2 сейчас работает нормально, но метод один до вывода false. * /
РЕДАКТИРОВАТЬ 2: Эй, ребята, извините, код работает как шарм ... Оказывается, Али был прав. Мне просто нужно вздремнуть ...