我想编写一种方法,使用string
或.contains
检查.indexOf
辅音。
我想我可以做很长的路并检查字母表中的每个辅音,但我知道有更好的方法。这就是我到目前为止所做的事情,但我想我认为这是漫长的道路。
public boolean containsConsonant(String searchString) {
if(searchString.contains("b") || searchString.contains("c")){
return true;
}
答案 0 :(得分:2)
我认为一个简单的 from matplotlib import pyplot as plt
from matplotlib import animation
fig = plt.figure()
ax = plt.axes(xlim=(0, 2), ylim=(0, 100))
N = 3
lines = [plt.plot([], [])[0] for _ in range(N)]
def init():
for line in lines:
line.set_data([], [])
return lines
def animate(i):
for j,line in enumerate(lines):
line.set_data([0, 2], [10*j,i])
line.set_label('line %d, stage %d'%(j,i))
return lines
anim = animation.FuncAnimation(fig, animate, init_func=init,
frames=100, interval=20, blit=True)
plt.show()
循环在这里是最可读的,你可以使用布尔值来测试一个字符在所需范围内。您可以使用或测试跳过元音。像,
for
然后,您可以使用public boolean containsConsonant(String searchString) {
if (searchString == null) {
return false;
}
for (char ch : searchString.toCharArray()) {
char lower = Character.toLowerCase(ch);
if (lower >= 'a' && lower <= 'z') {
if (lower == 'a' || lower == 'e' || lower == 'i' ||
lower == 'o' || lower == 'u') continue;
return true;
}
}
return false;
}
对contains
提取的常量String
优化上述(以及直接到您的问题) }}。像,
vowels
答案 1 :(得分:1)
你可以创建一个包含所有辅音的数组,然后使用循环运行它 e.g。
String[] consonants{"b", "c",....}
boolean containsConsonants(String searchString, String[]arr){
for (String consonant: arr){
if(searchString.contains(str)){ return true} return False
答案 2 :(得分:1)
我发现您明确要求使用contains
或indexOf
以防万一 - 如果你可以使用matches
- 它将非常容易实现。
public boolean containsConsonant(String searchString){
String consonants = ".*[bcdfghj].*"; //list the characters to be checked
return searchString.matches(consonants);
}