在Java中,有一种检查条件的方法:
“此单个字符是否出现在字符串x中”
没有使用循环的的?
发布于 2009-02-03 05:40:36
发布于 2009-02-03 05:41:42
发布于 2009-02-03 13:53:56
我不确定最初的发帖者到底在问什么。由于indexOf(...)并包含(...)两者都可能在内部使用循环,也许他想看看在没有循环的情况下这是否可能?我可以随手想到两种方法,一种当然是递归:
public boolean containsChar(String s, char search) {
if (s.length() == 0)
return false;
else
return s.charAt(0) == search || containsChar(s.substring(1), search);
}
另一个远没有那么优雅,但完备性...:
/**
* Works for strings of up to 5 characters
*/
public boolean containsChar(String s, char search) {
if (s.length() > 5) throw IllegalArgumentException();
try {
if (s.charAt(0) == search) return true;
if (s.charAt(1) == search) return true;
if (s.charAt(2) == search) return true;
if (s.charAt(3) == search) return true;
if (s.charAt(4) == search) return true;
} catch (IndexOutOfBoundsException e) {
// this should never happen...
return false;
}
return false;
}
当然,当您需要支持越来越长的字符串时,行的数量也会增加。但是根本没有循环/递归。如果您担心length()使用循环,您甚至可以删除长度检查。
https://stackoverflow.com/questions/506105
复制相似问题