В моем коде метод fromright проверяет длину last[]
и возвращает только одну строку. Я хочу вернуть все согласованные значения. Какое решение?
public static String last[]={"es","e","s"};
public static void main(String[] args) {
text tx=new text();
String checkString = "lives";
String fin=tx.fromright(checkString);
System.out.println("remaining: "+fin);
}
public String fromright(String wrd) {
String tmp="";
for (int i = 0; i < last.length; i++) {
tmp=wrd.substring(0, wrd.length()-last.length);
}
return tmp;
}
Вы переопределяете свою переменную tmp в своем цикле for каждый раз. Таким образом, вы можете получить только один результат. Используйте это вместо или smth. аналогичный, который может содержать несколько значений.
public List<String> fromright(String wrd) {
List<String> tmp= new ArrayList<String>();
for (int i = 0; i < last.length; i++) {
tmp.add(wrd.substring(0, wrd.length()-last.length));
}
return tmp;
EDIT: Это больше не работает.
String fin=tx.fromright(checkString);
^
Замените его
List<String> fin= new ArrayList<String>(tx.fromright(checkString));
И распечатайте все значения с помощью этого
for(String s : fin) System.out.println(s);
public List<String> fromright(String wrd) {
List<String> result = new ArrayList<>();
for (int i = 0; i < last.length; i++) {
if(wrd.endsWith(last[i]))
result.add(last[i]);
}
return result;