Partial Word Searching

Write a method that will search an array of strings for all strings that contain another string, ignoring capitalization. Then return an array of the found strings.

The method takes two parameters, the query string and the array of strings to search, and returns an array.

If the string isn't contained in any of the strings in the array, the method returns an array containing a single string: "Empty".

Example: If the string to search for is "me", and the array to search is ["home", "milk", "Mercury", "fish"], the method should return ["home", "Mercury"].

import java.util.Arrays; class WordSearch { static String[] findWord(String x, String[] y){ final String xLower = x.toLowerCase(); String[] searchResults = Arrays.stream(y) .filter(s -> s.toLowerCase().contains(xLower)) .toArray(size -> new String[size]); return searchResults.length > 0 ? searchResults : new String[] {"Empty"}; } }

class WordSearch { static String[] findWord(String x, String[] y) { List<String> found = new ArrayList<>(); x = x.toLowerCase(); for(String str : y) { if(str.toLowerCase().indexOf(x) > -1) { found.add(str); } } return found.size() > 0 ? found.toArray(new String[0]) : new String[]{"Empty"}; } }

class WordSearch { static String[] findWord(String x, String[] y){ ArrayList<String> sols = new ArrayList<String>(); for(int i = 0; i < y.length; i++) { if(y[i].toLowerCase().contains(x.toLowerCase())){ sols.add(y[i]); } } String[] empty = {"Empty"}; return sols.isEmpty() ? empty : sols.toArray(new String[sols.size()]); } }

原文地址:https://www.cnblogs.com/lgaigai/p/4282583.html