вопрос с массивами

218
27 февраля 2018, 05:35

решаю задачу и результаты теста показывают что я где-то намудрил с массивами (насколько я понимаю), но я не вижу где мог бы допустить ошибку. Знатоки, подскажите!)

    public class Kata {
    public static int findShort(String s) {
    String [] words = s.split(" ");
    String shortestword = words[0]; 
    int size = shortestword.length();
    for(int i = 1; i < size; i++) {
    if (words[i].length() < shortestword.length()) { 
    shortestword = words[i];     
    }
    return shortestword.length();
    }
    return 0;
    }
    }

результаты теста показывают

expected:<3> but was:<4>

Answer 1

Табулируйте! Яснее будет ошибка. Проблема становится очевидной:

public class Kata {
  public static int findShort(String s) {
    String [] words = s.split(" ");
    String shortestword = words[0]; 
    int size = shortestword.length();
    for(int i = 1; i < size; i++) {
      if (words[i].length() < shortestword.length()) { 
        shortestword = words[i];     
      }
      return shortestword.length();
    }
    return 0;
  }
}

Вы не проходите цикл до конца. При первой же итерации у вас выполняется возврат функции. Правильно:

public class Kata {
  public static int findShort(String s) {
    String [] words = s.split(" ");
    String shortestword = words[0]; 
    int size = shortestword.length();
    for(int i = 1; i < size; i++) {
      if (words[i].length() < shortestword.length()) { 
        shortestword = words[i];     
      }
    }
    return shortestword.length();
  }
}

Однако, есть ещё ошибка: вы делаете цикл неправильное количество раз, а точнее, столько, сколько букв в первом слове (size). А стоит делать words.length() раз.

READ ALSO
Java возвращение значения из функции

Java возвращение значения из функции

Не могу додуматься как вернуть значение

265
Как нарисовать 3D дом на SurfaceView

Как нарисовать 3D дом на SurfaceView

Из ApiDemo взял код 3D кубаНо немогу понять для чего 36 точек вместо 8-и

246
Поиск в объекте

Поиск в объекте

Всем приветТакой вопрос

222
Можноли через Exchanger передать данные в ui поток?

Можноли через Exchanger передать данные в ui поток?

Добрый день , углубляю знания и вот подумал а возможноли в Android передать данные из потока созданного через Thread Runnable в ui поток ?Ведь посути exchager...

225