如何在java中更改数组列表的所有值?
如何更改arraylist中名为的值:如何在java中更改数组列表的所有值?,java,arraylist,java8,Java,Arraylist,Java8,如何更改arraylist中名为的值: christopher hitchens william craig 到 使用String.split拆分名字和姓氏,然后可以按任意顺序将它们重新组合在一起: List<String> nameList = ...; for (int i = 0; i < nameList.size(); ++i) { String[] names = nameList.split(" "); nameList.set (i, name
christopher hitchens
william craig
到
使用
String.split
拆分名字和姓氏,然后可以按任意顺序将它们重新组合在一起:
List<String> nameList = ...;
for (int i = 0; i < nameList.size(); ++i) {
String[] names = nameList.split(" ");
nameList.set (i, names[1] + ", " + names[0]);
}
列表名称列表=。。。;
对于(int i=0;i
使用Java 8,您可以执行以下操作:
List<String> listOfStrings = new ArrayList<>();
listOfStrings.add("christopher hitchens");
listOfStrings.add("william craig");
listOfStrings.forEach(this::mapper);
如果你想处理更多的情况,那么你需要提供一个更好的mapping()
方法,我根据你的输入/输出示例制作了一个非常幼稚的版本。如果你正在使用,你可以看看这个方法:
List=Arrays.asList(“克里斯托弗·希钦斯”、“威廉·克雷格”);
replaceAll(s->{String[]names=s.split(“”);
返回名称[1]+“,“+名称[0];}
);
@mata:java,在问题中提到过…你尝试过什么吗…发布你的代码你写的代码改变了一个值,然后你写的代码在数组中迭代,然后你把这两个放在一起。这不太管用。提问者还希望交换姓和名的顺序。如果我使用lambda来节省一些代码和空间,我不会明确地编写StringBuilder
,因为编译器会为我这样做。我们试图在这里编写可读代码,不是吗?
List<String> listOfStrings = new ArrayList<>();
listOfStrings.add("christopher hitchens");
listOfStrings.add("william craig");
listOfStrings.forEach(this::mapper);
private String mapper(final String input) {
String[] parts = input.split(" ");
return parts[1] + ", " + parts[0];
}
List<String> list = Arrays.asList("christopher hitchens","william craig");
list.replaceAll(s -> {String[] names = s.split(" ");
return names[1]+","+names[0];}
);