gpt4 book ai didi

java - 将除第 n 个元素之外的所有元素添加到另一个 arraylist

转载 作者:太空宇宙 更新时间:2023-11-03 19:02:16 26 4
gpt4 key购买 nike

对于我的项目,我们必须使用 Java 操作某些 LISP 措辞。给出其中一项任务:

'((4A)(1B)(2C)(2A)(1D)(4E)2)

最后的数字是“n”。任务是从表达式中删除每第 n 个元素。例如,上面的表达式将计算为:

′((4A)(2C)(1D)2)

我现在的方法是将所有不在第 n 个索引处的元素添加到另一个数组。我的错误是它将每个元素都添加到新数组中,使两个元素完全相同。

我的代码:

    String input4=inData.nextLine();
length=input4.length();
String nString=input4.substring(length-2,length-1);
int n = Integer.parseInt(nString);
count=n;
String delete1=input4.replace("'(","");
String delete2=delete1.replace("(","");
final1=delete2.replace(")","");
length=final1.length();


for (int i=1;i<length;i++)
{
part=final1.substring(i-1,i);
list.add(part);

}

for(int i=0;i<=list.size();i++)
{

if(!(i%n==0))
{
delete.add(list.get(i-1));
delete.add(list.get(i));

}
else
{

}

}
System.out.print("\n"+list);

最佳答案

这个问题的一个解决方案(虽然没有直接解决您的解决方案中的问题)是使用正则表达式模式,因为它们非常适合这类事情,特别是如果此代码不必适应不同的输入字符串.我发现如果这样的事情是可能的,它比尝试直接操作字符串更容易,尽管这些模式(和一般的正则表达式)很慢。

// Same as you had before
String input4="'((4A)(1B)(2C)(2A)(1D)(4E)2)";
int length=input4.length();
String nString=input4.substring(length-2,length-1);
int n = Integer.parseInt(nString);
int count=n;

// Match (..)
// This could be adapted to catch ( ) with anything in it other than another
// set of parentheses.
Matcher m = Pattern.compile("\\(.{2}\\)").matcher(input4);

// Initialize with the start of the resulting string.
StringBuilder sb = new StringBuilder("'(");
int i = 0;
while (m.find())
{
// If we are not at an index to skip, then append this group
if (++i % count != 0)
{
sb.append(m.group());
}
}

// Add the end, which is the count and the ending parentheses.
sb.append(count).append(")");

System.out.println(sb.toString());

一些示例输入/输出:

'((4A)(1B)(2C)(2A)(1D)(4E)2)
'((4A)(2C)(1D)2)

'((4A)(1B)(2C)(2A)(1D)(4E)3)
'((4A)(1B)(2A)(1D)3)

关于java - 将除第 n 个元素之外的所有元素添加到另一个 arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28444839/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com