最大的挑戰是如何分解輸入字符串,所有的答案/評論將基於一些假設,直到OP提供更多細節。
在這個答案假設是輸入是一個駱駝大小寫字符串,第一個字母大寫。
public class CheckDict {
static Set<String> dict = new HashSet<String>(Arrays.asList(new String[]
{"Hi", "Hello", "Welcome", "To", "Stack", "Overflow"}));
public static void main(String[] args) {
System.out.println("Test 1: " + findDict("WelcomeToStackOverflow"));
System.out.println("Test 2: " + findDict("StackOverflowWelcomeYou"));
}
static String findDict(String str) {
// split the string when we encounter an upper case letter except at start
String[] arr = str.split("(?<!^)(?=[A-Z])");
StringBuilder output = new StringBuilder(arr[0]);
for (int i=1; i< arr.length; i++) {
if (!dict.contains(arr[i]))
return null;
else
output.append(' ').append(arr[i]);
}
return output.toString();
}
}
OUTPUT:
Test 1: Welcome To Stack Overflow
Test 2: null
首先,請決定的語言。其次,請親自嘗試自己做這件事併發布你所擁有的代碼,以證明一些努力。 – NPE
三,更準確地描述問題。 – juanchopanza
可以輸入假設爲駱駝情況(以大寫字母開頭)。 – anubhava