Java 需要从arraylist中删除包含字母和don';如果包含其他内容,请不要触摸
所以我想做一个方法修正,删除所有包含字母r的单词,然后乘以x2,所有包含字母l的单词,如果单词包含字母r和l,就不要碰它。方法工作,但不是它必须如何工作。我认为这与移除有关Java 需要从arraylist中删除包含字母和don';如果包含其他内容,请不要触摸,java,arraylist,Java,Arraylist,所以我想做一个方法修正,删除所有包含字母r的单词,然后乘以x2,所有包含字母l的单词,如果单词包含字母r和l,就不要碰它。方法工作,但不是它必须如何工作。我认为这与移除有关 public class Solution { public static void main(String[] args) throws Exception { BufferedReader bis = new BufferedReader(new InputStreamReader(Sys
public class Solution
{
public static void main(String[] args) throws Exception
{
BufferedReader bis = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> list = new ArrayList<String>();
list.add("rose"); //0
list.add("liar"); //1
list.add("lisa"); //2
list = fix(list);
for (String s : list)
{
System.out.println(s);
}
}
public static ArrayList<String> fix(ArrayList<String> list) {
//
ArrayList<String> temp = new ArrayList<String>();
for(int i = 0; i < list.size(); i++){
String s = list.get(i);
boolean strL = s.contains("l");
boolean strR = s.contains("r");
if(strR){
temp.remove(s);
}
if(strL && strR) {
temp.add(s);
} else {
if(strL) {
temp.add(s);
temp.add(s);
}
}
}
return temp;
}
}
公共类解决方案
{
公共静态void main(字符串[]args)引发异常
{
BufferedReader bis=新的BufferedReader(新的InputStreamReader(System.in));
ArrayList=新建ArrayList();
list.add(“rose”);//0
list.add(“说谎者”);//1
list.add(“lisa”);//2
列表=修复(列表);
用于(字符串s:列表)
{
系统输出打印项次;
}
}
公共静态ArrayList修复程序(ArrayList列表){
//
ArrayList temp=新的ArrayList();
对于(int i=0;i
我认为您的逻辑应该是:
if (strL != strR) {
list.remove(word);
}
如果两者都不包含,则不执行任何操作。如果它同时包含这两个元素,那么它什么也不做。如果它包含L而不是R,则会将其删除。如果它包含R而不是L,它将删除它
当然,我的代码正在修改输入列表。如果您想建立一个temp
列表,那么可以很容易地推断出我的答案,以得到您想要的 试试这个
if(strL和strR){
临时添加;
}否则如果(strL){
//无所事事
}否则,如果(strR){
//无所事事
}否则{
临时添加;
}
或者你能做的很简单
if(strL和strR){
临时添加;
}其他(!strL&&!strR){
临时添加;
}
希望它能工作您不必从
temp
列表中删除它
唯一要做的是测试每次迭代时从传入参数的列表中获得的值:
- 检查这两个条件是否都为真,在这种情况下只需添加原始单词李>
- 测试它是否包含一个
,然后将其乘以2l
- 否则什么也不做(对于不包含
和l
的单词,您没有明确说明该怎么做):r
哪些产出:
liar
lisa
lisa
您应该使用迭代器, 以及异或(^)运算符
public static ArrayList<String> fix(ArrayList<String> list) {
ArrayList<String> temp = new ArrayList<>();
for (Iterator<String> i = list.iterator(); i.hasNext();) {
String str = i.next();
boolean isL = str.contains("l");
boolean isR = str.contains("r");
if (isR ^ isL) {
if (isR) {
i.remove();
}
else {
temp.add(str);
temp.add(str);
}
}
else {
temp.add(str);
}
}
return temp;
}
公共静态ArrayList修复程序(ArrayList列表){
ArrayList temp=新的ArrayList();
for(迭代器i=list.Iterator();i.hasNext();){
字符串str=i.next();
布尔isL=str.contains(“l”);
布尔isR=str.contains(“r”);
如果(isR^isL){
如果(isR){
i、 删除();
}
否则{
临时添加(str);
临时添加(str);
}
}
否则{
临时添加(str);
}
}
返回温度;
}
以下是答案…
public class Solution {
public static void main(String[] args) throws Exception {
ArrayList<String> list = new ArrayList<String>();
list.add("rose"); // 0
list.add("love"); // 1
list.add("lyre"); // 2
list = fix(list);
for (String s : list) {
System.out.println(s);
}
}
public static ArrayList<String> fix(ArrayList<String> list) {
//
ArrayList<String> teampList = new ArrayList<String>();
for (int i = 0; i < list.size(); i++) {
String mainList = list.get(i);
boolean checkL = mainList.contains("l");
boolean checkR = mainList.contains("r");
if (checkR) {
teampList.remove(mainList);
}
if (checkL && checkR) {
teampList.add(mainList);
} else {
if (!checkL && !checkR) {
teampList.add(mainList);
}
if (checkL) {
teampList.add(mainList);
teampList.add(mainList);
}
}
}//end for
return teampList;
}
}
公共类解决方案{
公共静态void main(字符串[]args)引发异常{
ArrayList=新建ArrayList();
list.add(“rose”);//0
list.add(“love”);//1
list.add(“lyre”);//2
列表=修复(列表);
用于(字符串s:列表){
系统输出打印项次;
}
}
公共静态ArrayList修复程序(ArrayList列表){
//
ArrayList teampList=新的ArrayList();
对于(int i=0;i
对不起,我解释了bad=|它必须做的事情是,它必须将所有包含字母(l)的单词乘以2。
public class Solution {
public static void main(String[] args) throws Exception {
ArrayList<String> list = new ArrayList<String>();
list.add("rose"); // 0
list.add("love"); // 1
list.add("lyre"); // 2
list = fix(list);
for (String s : list) {
System.out.println(s);
}
}
public static ArrayList<String> fix(ArrayList<String> list) {
//
ArrayList<String> teampList = new ArrayList<String>();
for (int i = 0; i < list.size(); i++) {
String mainList = list.get(i);
boolean checkL = mainList.contains("l");
boolean checkR = mainList.contains("r");
if (checkR) {
teampList.remove(mainList);
}
if (checkL && checkR) {
teampList.add(mainList);
} else {
if (!checkL && !checkR) {
teampList.add(mainList);
}
if (checkL) {
teampList.add(mainList);
teampList.add(mainList);
}
}
}//end for
return teampList;
}
}