Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
7 / 5 / 3
Регистрация: 02.11.2019
Сообщений: 85

Повернуть имя без чисел, а если у нему есть число изменить

30.12.2019, 16:34. Показов 1231. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Повернуть имя без чисел, а если у нему есть число изменить.
Помогите пожалуйста, хочу сделать проверку на правильность, но как сделать чтобы имя, нужно было переписывать если оно введенное неправильно, я не знаю.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static void validateAnotherWay(final String username)
      {
          if (username.length()>4 && username.length()<16){
              for(char c: username.toCharArray()){
                  if(Character.isLetter(c) || Character.isDigit(c)){
                      System.out.println("Username is valid");
                  }
                  else System.out.println("Username is not valid");
              }
              
          }
          else System.out.println("Username must be more then 4 and less than 16 chars long");
          
      }
Добавлено через 8 минут
У меня получается что-то как-то так, не судите очень строго я только учусь.
Проблема в этом коде состоит в том что имя бесконечно вводится, и я не понимаю почему.

Java
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
package peopleLife;
import java.util.Scanner;
public class nameTrue {
    static String name="";
    public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    
    do{ 
    name=sc.next();
        nameTrue(name);
    }while(nameTrue(name)=="k");
    }
public static String nameTrue(String name) {
        if (name.length()>=4 && name.length()<10){
            for(char c: name.toCharArray()){
                if(Character.isLetter(c) && !Character.isLetter(c)){
                    System.out.println("Name is valid");             
                    return name; //name
                    
                }else if(Character.isDigit(c)) {
                    System.out.println("Name is not valid you have number in name");
                    return name="k";
                }
            }
        }
            return name="k";
        
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.12.2019, 16:34
Ответы с готовыми решениями:

Определить, есть ли в массиве Z из 10 значений заданное число Х, и если нет, то найти ближайшее к нему
Часть задачи сделать смог, а вот найти ближайшее число к любому заданному не получается.... Определить, есть ли в массиве Z из 10...

Определить есть ли в массиве Z из 10 значений заданное число Х, и если нет, то найти ближайшие к нему
не понимаю где ошибка program sam42; const n = 10; var a: array of integer; x, i, p: integer; begin ...

Если в матрице есть хотя бы одно простое число, то повернуть ее на 180 градусов против часовой стрелки
Дан даумерный целочисленный массив если среди элементов есть хотя бы одно простое число, то повернуть все элементы массива на 180 градусов...

11
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
30.12.2019, 16:39
Цитата Сообщение от valick18 Посмотреть сообщение
хочу сделать проверку на правильность,
но у вас уже делает проверку!
Цитата Сообщение от valick18 Посмотреть сообщение
но как сделать чтобы имя, нужно было переписывать
логично же, пославить все в цикл и переписывать. В этом же цикле и проверять вашим методом.
Цитата Сообщение от valick18 Посмотреть сообщение
если оно введенное неправильно,
Ваш метод должен "говорить" месту вызова прошло ли проверку имя или не прошло, а значит возвращать boolean вместо void. Ну и условие выхода с цикла зависит от того что возвратит ваш метод.
0
7 / 5 / 3
Регистрация: 02.11.2019
Сообщений: 85
30.12.2019, 16:50  [ТС]
Да, но суть в том что у меня два java файла и я хочу чтоб этот метод возвращал правильное имя.

Добавлено через 3 минуты
Добавил boolean, но все же цикл не заканчивается после проверки.
Java
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
package peopleLife;
import java.util.Scanner;
public class nameTrue {
    static String name="";
    public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    
    do{ 
    name=sc.next();
        nameTrue(name);
    }while(nameTrue(name)!=true);
    }
public static boolean nameTrue(String name) {
        if (name.length()>=4 && name.length()<10){
            for(char c: name.toCharArray()){
                if(Character.isLetter(c) && !Character.isLetter(c)){
                    System.out.println("Name is valid");             
                    return true; //name
                    
                }else if(Character.isDigit(c)) {
                    System.out.println("Name is not valid you have number in name");
                    return false;
                }
            }
        }
            return false;
}}
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
30.12.2019, 16:50
Цитата Сообщение от valick18 Посмотреть сообщение
я хочу чтоб этот метод возвращал правильное имя.
Java
1
return name="Правильное имя";
П.С. то что вы хотите несоответствует написаному вами коду. Ставьте четче задание.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
30.12.2019, 16:53
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public static void main(String[] args) {
        String name;
        do {
            name = askUsername();
        } while(!isValid(name));
    }
 
    static boolean isValid(String name) {
        проверить, что имя правильное
    }
    static String askUsername() {
        попросить пользователя ввести имя
    }
1
7 / 5 / 3
Регистрация: 02.11.2019
Сообщений: 85
30.12.2019, 17:12  [ТС]
И все же бесконечно вводить нужно имя
Java
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
package peopleLife;
import java.util.Scanner;
public class trueName {
    static String name;
    public static void main(String[] args) {
        
        do {
            name = askUsername();
        } while(!isValid(name));
    }
 
    static boolean isValid(String name) {
            if (name.length()>=4 && name.length()<10){
                    for(char c: name.toCharArray()){
                        if(Character.isLetter(c) && !Character.isLetter(c)){
                            System.out.println("Name is valid");             
                            return true; //name
                            
                        }else if(Character.isDigit(c)) {
                            System.out.println("Name is not valid you have number in name");
                           return false;
                        }
                    }
                }
                return false;
    }
    
    static String askUsername() {
        Scanner sc=new Scanner(System.in);
        System.out.println("Enter name");
        name=sc.next();
        return name;
    }
    
    }
0
502 / 348 / 134
Регистрация: 14.06.2016
Сообщений: 669
30.12.2019, 17:46
Java
1
Character.isLetter(c) && !Character.isLetter(c)
???
1
 Аватар для sdasdaw
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
30.12.2019, 18:00
Цитата Сообщение от vcrop Посмотреть сообщение
???
ахахахаха
0
7 / 5 / 3
Регистрация: 02.11.2019
Сообщений: 85
30.12.2019, 18:04  [ТС]
Цитата Сообщение от vcrop Посмотреть сообщение
Character.isLetter(c) && !Character.isLetter(c)
Исправил

Добавлено через 43 секунды
Как сделать так чтобы не можно было писать числа в имени.

Java
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
package peopleLife;
import java.util.Scanner;
public class nameTrue {
    static String name="";
    public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
   
   do {
    name=sc.next(); 
    
    }while(nameTrue(name)=="");
    }
  
public static String nameTrue(String name) {
   Scanner sc=new Scanner(System.in);
    if(name=="") {
        name=sc.next();
    }
    if (name.length()>=4 && name.length()<10){
            for(char c: name.toCharArray()){
                if(Character.isLetter(c)){
                    System.out.println("Name is valid");             
                    return name; //name
                    
                }else if(Character.isDigit(c)) {
                    System.out.println("Name is not valid you have number in name");
                    return name="";
                }
            }
        }
        return name="";
}}
0
 Аватар для sdasdaw
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
30.12.2019, 18:10
valick18, было как-то красиво все, а потом сделали зачем-то

Цитата Сообщение от valick18 Посмотреть сообщение
String nameTrue
Цитата Сообщение от valick18 Посмотреть сообщение
Scanner sc=new Scanner(System.in);
    if(name=="") {
        name=sc.next();
    }
а это условие - вообще пушка
Цитата Сообщение от valick18 Посмотреть сообщение
if(Character.isLetter(c)){
                    System.out.println("Name is valid");            
                    return name; //name
}else if(Character.isDigit(c)) {
                    System.out.println("Name is not valid you have number in name");
                    return name="";
                }
1
7 / 5 / 3
Регистрация: 02.11.2019
Сообщений: 85
30.12.2019, 18:39  [ТС]
Цитата Сообщение от sdasdaw Посмотреть сообщение
а это условие - вообще пушка
Пушка не пушка, но это мне ничего не говорит как сделать так чтоб имя возвращалось без чисел.
Есть еще идея со счетчиком, но не знаю как правильно его реализовать.

Java
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
package peopleLife;
import java.util.Scanner;
public class nameTrue {
    static String name="";
    
    public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
   
   do {
    name=sc.next(); 
    
    }while(nameTrue(name)=="");
    }
  
public static String nameTrue(String name) {
  
    Scanner sc=new Scanner(System.in);
    if(name=="") {
        name=sc.next();
    }
    if (name.length()>=4 && name.length()<10){
            for(char c: name.toCharArray()){
               
                if(Character.isLetter(c) ){
                    System.out.println("Name is valid");             
                    return name; //name
                    
                }else if(Character.isDigit(c)) {
                    System.out.println("Name is not valid you have number in name");
                    return name="";
                }
                
                
            }
        }
        return name="";
}}
0
 Аватар для sdasdaw
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
30.12.2019, 19:20
Цитата Сообщение от valick18 Посмотреть сообщение
возвращалось без чисел.
чепуха чепухой

Bash
1
PlayerUnknown123 -> PlayerUnknown
Java
1
2
3
4
5
6
7
8
9
public static void main(String[] args) { System.out.println(excludeNumbers("PlayerUnknown123")); }
 
static String excludeNumbers(String source) {
    StringBuilder result = new StringBuilder();
    
    for (int i = 0; i < source.length(); i++) if (!Character.isDigit(source.charAt(i))) result.append(source.charAt(i));
       
    return result.toString();
}
Добавлено через 2 минуты
или еще легче

Java
1
System.out.println("PlayerUnknown123".replaceAll("\\d+", ""));
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.12.2019, 19:20
Помогаю со студенческими работами здесь

Если число положительно - прибавить к нему 1; если отрицательно - вычесть из него 2; если ноль - то заменить его на 10
Дано целое число. Если оно является положительным, то прибавить к нему 1; если отрицательным, то вычесть из него 2; если нулевым, то...

Если число положительно - прибавить к нему 1; если отрицательно - вычесть из него 2; если ноль - то заменить его на 10
Нужно составить алгоритм в виде блок-схемы и написать программу для решения задачи: ДАНО ЦЕЛОЕ ЧИСЛО. ЕСЛИ ОНО ЯВЛЯЕТСЯ ПОЛОЖИТЕЛЬНЫМ ТО...

Дано целое число. Если оно является нечетным положительным, то прибавить к нему 1, если отрицательным, то вычесть 2, если нулевым, то заменить на 10
Дано целое число. Если оно является нечетным положительным, то прибавить к нему 1, если отрицательным, то вычесть из него 2, если нулевым,...

Если в последовательности из 3-х чисел есть число 7, вычислить произведение этих чисел; иначе - сумму
Задача: Составить программу, в которой пользователь вводит с клавиатуры 3 числа. Если в последовательности из 3-х чисел есть число 7,...

Массив состоит из 5 элементов, если число четное - то к нему прибавить 2, если нечетное - вычесть 2
Результат вывести в формате : (число, число, число, число, число)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru