I want to return the smallest values from my words
array
Finding the shortest word is easy but I am not sure how to return a new array with the shortest words.
public class Test{ public static void main(String args[]){ String[] words = {"What", "is", "the", "shortest", "word", "is"}; String shortest = words[0]; for ( int i=0; i<words.length; i++){ if(words[i].length() <= shortest.length()){ shortest = words[i]; } } System.out.println(shortest); } }
The expected output is something like shorestWords [] = {"is", "is"}
Advertisement
Answer
Since most of the answers are not considering that result is expected in String[] instead of ArrayList, here’s how I did it.
public static void main (String[] args) throws java.lang.Exception { String[] words = {"What", "is", "the", "shortest", "word", "is", "on"}; int countShortest = 0; int smallestLength = words[0].length(); for (int i=1; i<words.length; i++){ if(words[i].length() < smallestLength) { smallestLength = words[i].length(); countShortest=0; } if(words[i].length() == smallestLength) { countShortest++; } } String result[] = new String[countShortest]; int k = 0; for (int i=0; i<words.length; i++){ if(words[i].length() == smallestLength) { result[k] = words[i]; k++; } } for (int i=0; i<result.length; i++){ System.out.print(result[i] + " "); } }