Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Вынять кусочек из строки по ее формату!

Тема в разделе "Разработка плагинов для новичков", создана пользователем Mr_RoboMan, 20 июн 2016.

  1. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Есть формат строки (ЛОРЕ предмета (в одну строку)), я его не знаю.
    Я знаю лишь то, что в формате содержится переменная например %N%!
    Далее у меня есть строка, созданная по этому формату, как мне выковырять из нее то, что вставленно в нее вместо %N%?
     
  2. Хостинг MineCraft
    <
  3. fall.us

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

    Баллы:
    76
    Имя в Minecraft:
    fallus
    Как вариант, сохранять где-то этот формат и по нему определять индекс Вашей переменной.[DOUBLEPOST=1466422611,1466422418][/DOUBLEPOST]Вынять вынуть
     
  4. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Дак формат этот сохранен в конфиге (пользователем), главное как-то по этому формату вытянуть перменную из строки...
    И просто индекс определять - не достаточно... Ведь эта переменная может быть любой длины, и в любом месте (начало-средина-конец)
     
  5. fall.us

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

    Баллы:
    76
    Имя в Minecraft:
    fallus
    Код:
    Stirng format = "some value: %N%";
    String formattedString = "some value: 1235";
    int idx = format.indexOf(''%');
    int wsp = formattedString.lastIndexOf(' ');
    
    String value;
    
    if(wsp > idx)
      value = formattedString.substring(idx, wsp);
    else
      value = formattedString.substring(idx);
     
  6. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Спасибо, сейчас это лучший вариант, но его можно поломать, просто например поставив еще куда-то "%" =(
     
  7. DiamondDen

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

    Баллы:
    76
    Skype:
    danil_20034
    Имя в Minecraft:
    DiamondDen
    Код:
    String f = "some value: %N%";
    String fs = "some value: 1235";
    String fin = fs.replace(f.replace("%N%", ""), "");
     
  8. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Эх.. Тоже хороший вариант, однако, и это сломать тоже можно:
    Надо просто добавить символы после %N% =(
    Может кто знает как сделать это например регуляркой?
    [​IMG]
     
  9. DiamondDen

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

    Баллы:
    76
    Skype:
    danil_20034
    Имя в Minecraft:
    DiamondDen
    Код:
    String r = "%N%";
    String f = "some value: %N% keke";
    String fs = "some value: keke44 keke";
    String fin = "";
    int s = f.indexOf(r);
    fs = fs.substring(s);
    fin = fs.substring(0, fs.length() - f.substring(s + r.length()).length());
    System.out.println(fin);
    [DOUBLEPOST=1466435507,1466435361][/DOUBLEPOST]Проверяй
     
  10. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Тоже не прокатит, если поменять

    String r = "%N%";
    String f = "some value: kjk keke";
    String fs = "some value: keke44 keke";
    Тс же не знает значение формата, головоломка не решена).
     
  11. DiamondDen

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

    Баллы:
    76
    Skype:
    danil_20034
    Имя в Minecraft:
    DiamondDen
    аамм[DOUBLEPOST=1466436563,1466436523][/DOUBLEPOST]Понятно что работать не будет ты убрал из текста %N%
    String f = "some value: %N% keke";[DOUBLEPOST=1466436648][/DOUBLEPOST]String r = "%N%";
    Можно и без этого[DOUBLEPOST=1466436681][/DOUBLEPOST]
    Код:
    String f = "some value: %N% keke";
    String fs = "some value: keke44 keke";
    String fin = "";
    int s = f.indexOf("%N%");
    fs = fs.substring(s);
    fin = fs.substring(0, fs.length() - f.substring(s + 3).length());
    System.out.println(fin);
    [DOUBLEPOST=1466436765][/DOUBLEPOST]У автора темы:
    upload_2016-6-20_22-32-42.png
     
  12. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    ИТА ФАТАШОП, МИНЯ ПАДСТАВИЛИ!!!
    Вообще да, вроде работает, но я вспомнил почему я хотел делать это регуляркой, мне же еще надо проверить построена ли строка по этому формате.. :D
     

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