Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Kochergina_4
import java.util.*; import java.lang.*; class Rextester { public static void main(String[] args) { ArrayList<String> name_data = new ArrayList<String>(); name_data.add("ExeGate"); name_data.add("Gembird"); name_data.add("Dexp"); name_data.add("Orient"); name_data.add("5Bite"); // основной объект получения параметров по интерфейсу iParam iParam mainParam = new MainParam(name_data); System.out.println(mainParam.getParam("EXEGATE")); System.out.println(mainParam.getParam("ExeGate")); System.out.println(mainParam.getParam("Gembird")); System.out.println(mainParam.getParam("Gembird ")); // адаптированный объект получения параметров по тому же интерфейсу iParam iParam adapterTrimParam = new AdapterTrimParam(name_data); System.out.println(adapterTrimParam.getParam("EXEGATE")); System.out.println(adapterTrimParam.getParam("ExeGate")); System.out.println(adapterTrimParam.getParam("Gembird")); System.out.println(adapterTrimParam.getParam("Gembird ")); iParam NewADParam = new NewADiParam(name_data); System.out.println(NewADParam.getParam("EXEGATE")); System.out.println(NewADParam.getParam("ExeGate")); System.out.println(NewADParam.getParam("Gembird")); System.out.println(NewADParam.getParam("Gembird ")); } } // интерфейс включает единственный метод получения результата сравнения (match) interface iParam { int getParam(String data); } // класс с поиском без учета регистра class MainParam implements iParam { private ArrayList<String> _params; MainParam(ArrayList<String> params) { _params = params; } @Override public int getParam(String data) { int index = _params.indexOf(data); if(index != -1) { System.out.println("MainParam: Запись \"" + data + " \"найдена!!!"); } else { System.out.println("MainParam: Запись с данными " + data + "не обнаружена!!(("); } return index; } } // еще один интерфейс для "адаптированного" поиска (если не получается основной) interface iAdvancedParam { boolean getMatch(String data); } // класс с поиском без учета регистра и (адаптер) лишних пробелов в начале и конце строки class AdvTrimParam implements iAdvancedParam { private ArrayList<String> _params; AdvTrimParam(ArrayList<String> params) { _params = params; } @Override public boolean getMatch(String data) { boolean is_match = _params.stream().anyMatch(s -> s.equalsIgnoreCase(data)); if(is_match) { System.out.println("AdvTrimParam: Запись \"" + data + " \"найдена, игнорируя регистр символов!!!"); } else { is_match = _params.stream().anyMatch(s -> s.equalsIgnoreCase(data.trim())); if(is_match) { System.out.println("AdvTrimParam: Запись \"" + data + " \"найдена, игнорируя регистр символов и лишние пробелы в начале и конце строки!!!"); } else { System.out.println("AdvTrimParam: Запись с данными " + data + " все равно не обнаружена!!(("); } } return is_match; } } // адаптированный поиск методом getParam(); если не получилось, адаптированным методом getMatch() class AdapterTrimParam implements iParam { private iParam _mainParam; private iAdvancedParam _advancedParam; AdapterTrimParam(ArrayList<String> params) { _mainParam = new MainParam(params); _advancedParam = new AdvTrimParam(params); } @Override public int getParam(String data) { System.out.println("AdapterTrimParam: начало работы адаптера"); int ret_data = _mainParam.getParam(data); if(ret_data == -1) { System.out.println("AdapterTrimParam: Не удалось распознать " + data + "без адаптера!( Пробуем с Адаптером!"); boolean is_exist = _advancedParam.getMatch(data); if(!is_exist) { System.out.println("AdapterTrimParam: Даже с адаптером не удалось распознать запись!("); } else { System.out.println("AdapterTrimParam: Запись \"" + data + " \"найдена!!!"); } } return ret_data; } } // здесь нужно создать свои 2 класса для еще одного адаптера: // класс с поиском без учета регистра и (адаптер) лишних пробелов в начале и конце строки class NewADParam implements iAdvancedParam { private ArrayList<String> _params; NewADParam(ArrayList<String> params) { _params = params; } @Override public boolean getMatch(String data) { final String dataLowerCase = data.toLowerCase(); boolean is_match = _params.stream().anyMatch(s -> s.toLowerCase().contentEquals(dataLowerCase)); if(is_match) { System.out.println("NewADParam: Запись \"" + data + " \"найдена, игнорируя регистр символов!!!"); } else { is_match = _params.stream().anyMatch(s -> s.toLowerCase().contentEquals(dataLowerCase.trim())); if(is_match) { System.out.println("NewADParam: Запись \"" + data + " \"найдена, игнорируя регистр символов и лишние пробелы в начале и конце строки!!!"); } else { System.out.println("NewADParam: Запись с данными " + data + " все равно не обнаружена!!(("); } } return is_match; } } // адаптированный поиск методом getParam(); если не получилось, адаптированным методом getMatch() class NewADiParam implements iParam { private iParam _mainParam; private iAdvancedParam _advancedParam; NewADiParam(ArrayList<String> params) { _mainParam = new MainParam(params); _advancedParam = new AdvTrimParam(params); } @Override public int getParam(String data) { System.out.println("NewADiParam: начало работы адаптера"); int ret_data = _mainParam.getParam(data); if(ret_data == -1) { System.out.println("NewADiParam: Не удалось распознать " + data + "без адаптера!( Пробуем с Адаптером!"); boolean is_exist = _advancedParam.getMatch(data); if(!is_exist) { System.out.println("NewADiParam: Даже с адаптером не удалось распознать запись!("); } else { System.out.println("NewADiParam: Запись \"" + data + " \"найдена!!!"); } } return ret_data; } }
run
|
edit
|
history
|
help
0
HelloUser
Tech No.
Sort an array of 0's 1's 2's 3 pointer approach
jb11.0 threads tick tock 1.0
Bank System
1.5
1
PE #7
stream handlingException
ClientesJava v2