【发布时间】:2019-04-23 05:26:08
【问题描述】:
我正在尝试迭代以大写我的数组列表中以“m”而不是 M 开头的所有第一个字符,并删除任何不以 m 或 M 开头的字符。 我在这里尝试了一个代码,它似乎帮助我删除了几个单词,但不是我想要的那个,而且它没有按照我的需要大写这些单词。这就是我记下我添加的一些代码的方式
int i = 0;
int j = 0;
for (i = 0; i < myNameList.size(); i++) {
String name = myNameList.get(i);
String[] names = name.split("\\s+");
StringBuilder sb = new StringBuilder();
for (j = 0; j < names.length; j++) {
if (j != 0) {
sb.append(' ');
}
sb.append(Character.toUpperCase(names[j].charAt(0)));
sb.append(names[j].substring(1).toLowerCase());
}
if (names[0] == "m") {
myNameList.set(i, sb.toString());
} else if ((names[0] != "m" && names[0] != "M")) {
myNameList.remove(i);
}
}//end for loop
System.out.println(myNameList);
结果:
输入你要输入的名字
插入前列表
墨尔本 Mackay Mermaid Beach Maitland Maroochydore Muwoolimbah Merriwether monkeytown Troydon
[麦凯、梅特兰、Muwoolimbah、猴子镇]
删除后的列表
Mackay Maitland Muwoolimbah monkeytown
删除后
else if ((names[0] != "m" || names[0] != "M")) {
myNameList.remove(i);
}
插入前列表
墨尔本 Mackay Mermaid Beach Maitland Maroochydore Muwoolimbah Merriwether monkeytown Troydon
[墨尔本、麦凯、美人鱼海滩、梅特兰、Maroochydore、Muwoolimbah、Merriwether、Monkeytown、特洛伊登]
删除后的列表
墨尔本麦凯美人鱼海滩梅特兰 Maroochydore Muwoolimbah Merriwether Monkeytown Troydon
【问题讨论】:
-
names[0] == "m"这可以编译吗?试试names[0] == 'm' -
嗯?你想大写例如
man然后也删除?可以添加一些示例数据吗? -
抱歉刚刚更新了帖子,我想删除不以 M 或 m 开头的字符。墨尔本麦凯美人鱼海滩梅特兰 Maroochydore Muwoolimbah Merriwether monkeytown Troydon 是最初的名单。然后我得到 Mackay、Maitland、Muwoolimbah、monkeytown,而不是仅仅删除“Troydon”并将 Monkeytown 更改为 Monkeytown
-
你的意思是任何不以
m开头的词吗?dog->og? -
那么你的问题是什么?
标签: java arraylist data-structures