1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Есть ли в java "универсальный заменитель" для символов?

Тема в разделе "Разработка плагинов для новичков", создана пользователем fakeAnonimus, 26 ноя 2018.

Статус темы:
Закрыта.
  1. Автор темы
    fakeAnonimus

    fakeAnonimus Ньюби Пользователь

    Баллы:
    1
    Например, есть строка "bm******yd", где на месте звёздочек могут быть любые символы и в любом количестве. Есть ли такое в java? Знаю, что в регулярных выражениях на php эту роль выполняет точка, но там учитывается количество символов.

    P.S. - знаю, что не по тебе. Я бы нагуглил, если бы смог нормально сформулировать вопрос
     
  2. NyanGuyMF

    NyanGuyMF Активный участник Пользователь

    Баллы:
    76
    Регулярное выражение для того, чтобы найти в строке "bm*******yd" все символы вместо звездочек для Java:
    Код:
    final String regex = "bm(.*)yd";
    Код:
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    final String regex = "bm(.*)yd";
    final String string = "bm123asdfasd asdfyd";
    
    final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
    final Matcher matcher = pattern.matcher(string);
    
    while (matcher.find()) {
        System.out.println("Full match: " + matcher.group(0));
        for (int i = 1; i <= matcher.groupCount(); i++) {
            System.out.println("Group " + i + ": " + matcher.group(i));
        }
    }
     
  3. Автор темы
    fakeAnonimus

    fakeAnonimus Ньюби Пользователь

    Баллы:
    1
    Нет, находить не надо. Дело-то и в том, что там несколько вариантов
    Ладно, я так понимаю, что я дурачок и задал вопрос, который мне не пригодится и вообще это так не работает. Хотел в .getString("something."+*разные ветви*+".test1") искать ник.
    Мне нужно проверить, есть ли искомая строка в конфиге вида
    Код:
    something:
      test:
        test1: String
        test 2: (лист)
        -
        -
      newtest:
        test1: String
        test 2: (лист)
        -
        -
    
    
    Я думаю, что нужно рыть в сторону ConfigurationSection, а там шаманить с getValues() и потом работать с Map, но мои знания Java оставляют желать лучшего
     
    Последнее редактирование: 26 ноя 2018
  4. NyanGuyMF

    NyanGuyMF Активный участник Пользователь

    Баллы:
    76
  5. Автор темы
    fakeAnonimus

    fakeAnonimus Ньюби Пользователь

    Баллы:
    1
    Да эт я понял, ещё бы знать, как) Час в гугле просидел - не нашёл. Видимо, придётся читать всё
    UPD:
    Код:
    if (plugin.config.getConfigurationSection("something").getValues(true).containsValue(player)) {
                           player.sendMessage("никнейм есть в конфиге");
                       }
    
    так не работает/ Можно как-нибудь выводить на экран Map? Знать бы, как он выглядит. А то работаю с тем, не знаю с чем
     
    Последнее редактирование: 26 ноя 2018
  6. Code

    Code Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    map.toString()
    а дальше в лог или куда угодно
     
  7. Nikolai_Faint

    Nikolai_Faint Активный участник Пользователь

    Баллы:
    96
    А не проще юзать for?
     
  8. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Типичные php засранцы не умеющие в ООП.
    Код:
            Users users = new Users(this.getConfig().getConfigurationSection("something"));
            User user = users.getUser("test");
            user.getTest1();
            user.getTest2();
    Код:
    package Example;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.bukkit.configuration.ConfigurationSection;
    
    public class Users {
        private Map<String, User> user = new HashMap<String, User>();
    
        public Users(ConfigurationSection section) {
            for (String key : section.getKeys(false)) {
                user.put(key, new User(section.getConfigurationSection(key)));
            }
        }
    
        public User getUser(String name) {
            return user.get(name);
        }
        
        public String toString() {
            return user.toString();
        }
    }
    Код:
    package Example;
    
    import java.util.List;
    
    import org.bukkit.configuration.ConfigurationSection;
    
    public class User {
        private String test1;
        private List<String> test2;
    
        public User(ConfigurationSection section) {
            test1 = section.getString("test1");
            test2 = (List<String>) section.getList("test2");
        }
    
        public String getTest1() {
            return test1;
        }
    
        public List<String> getTest2() {
            return test2;
        }
        
        public String toString() {
            return test1+":"+test2;
        }
    }
     
    Последнее редактирование: 27 ноя 2018
  9. Автор темы
    fakeAnonimus

    fakeAnonimus Ньюби Пользователь

    Баллы:
    1
    К слову, я не php-засранец, я в нём полный ноль)
    В Java я ноль, конечно, полнее. Где-то на уровне шестилетнего.
    А за решение спасибо большое
     
Статус темы:
Закрыта.

Поделиться этой страницей