我想创建一个打印ArrayList中元素的方法。 如果String以a,e,i,o或u开头,而不是打印String,则应该打印Buzz。
我正在尝试这种方式。但它不起作用。
{
"css": {
"snippets": {
"@media max-width": "@media(max-width: ${1:768}px) {\n\t${2}\n}",
"@media min-width": "@media(min-width: ${1:768}px) {\n\t${2}\n}"
}
}
}
我找到了一个简单的解决方案:
ArrayList<String> names = new ArrayList<>();
names.add("Harry");
names.add("Kathy");
ArrayList<String> replaceArray = new ArrayList<>();
String buzzReplace[] ={"a","e","i","o","u"};
for(String value:names)
{
if(value.startsWith(buzzReplace))
{
replaceArray = names.replaceAll(value,"Buzz");
}
System.out.println(replaceArray.get(value));
}
}
答案 0 :(得分:2)
if(value.startsWith(buzzReplace))
如果你考虑一下这里涉及的类型,显然字符串不能以字符串数组开头。字符串可能以另一个字符串开头。
因此,您需要遍历buzzReplace
列表的内容:
for(String name : names)
{
for (String vowel : buzzReplace)
{
if (name.startsWith(vowel))
{
//do something
}
}
}
您对replaceAll
的使用也不正确,与方法签名不符。我会留给您修复代码中的元素。 (提示:您不需要修改列表的内容)
答案 1 :(得分:1)
而不是
if(value.startsWith(buzzReplace))
尝试
String[] buzzReplace ={"a","e","i","o","u"};
if (Arrays.asList(buzzRepalce).contains(value.subString(0,1))
答案 2 :(得分:0)
这个答案的想法就像Jamesp的答案,但是因为你的代码有一些错误,也许你在下一步面对它们,我发送整个方法。
public static void main(String[] args) {
ArrayList<String> names = new ArrayList<>();
names.add("Harry");
names.add("Kathy");
names.add("aathy");
ArrayList<String> replaceArray = new ArrayList<>();
String[] buzzReplace ={"a","e","i","o","u"};
for(String value:names)
{
if(Arrays.asList(buzzReplace).contains(value.substring(0,1)))
{
replaceArray.add("Buzz");
}
else replaceArray.add(value);
}
System.out.println(Arrays.toString(replaceArray.toArray()));
}
答案 3 :(得分:0)
编写一些执行任务的方法。说吧。 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sommaire bullets" role="navigation">
<ol>
<li><a href="#北海道エリアで選べる電力会社">北海道エリアで選べる電力会社</a></li>
<li><a href="#北海道エリア電力会社・電気料金">北海道エリアの電力会社と電気料金プラン</a></li>
</ol>
</div>
<div style="height:500px; width:100%;"></div>
<h2 id="北海道エリアで選べる電力会社">北海道エリアで選べる電力会社</h2>
<div style="height:500px; width:100%;"></div>
<h2 id="北海道エリア電力会社・電気料金">北海道エリアの電力会社と電気料金プラン</h2>
现在从该方法获取替换的数组。
getReplacedList(List<String> names)
现在将原始列表传递给此方法以获取替换列表。
您的解决方案看起来像。
private static List<String> getReplacedList(List<String> names) {
ArrayList<String> replaceArray = new ArrayList<>();
String buzzReplace = "aeiou";
names.stream().forEach(name ->{
//user to lower case if you want to ignore case.
if (buzzReplace.contains(name.toLowerCase().charAt(0)+"")) {
//do some thing like
replaceArray.add("Buzz");
} else {
replaceArray.add(name);
}
});
return replaceArray;
}
答案 4 :(得分:0)
使用Java 8,您可以执行以下操作:
public List<String> buzz(List<String> names) {
List<Character> buzzChars = Arrays.asList('a', 'e', 'i', 'o', 'u');
return names.stream()
.map(name -> buzzChars.contains(name.toLowerCase().charAt(0)) ? "Buzz" : name)
.collect(Collectors.toList());
}