我有一个这样的数组列表: ArrayList names = new ArrayList<>(); ,用于存储人们在不同教科书中输入的名字和姓氏。
因此,当提示Joe Biden成为1号元素时,Barack Obama将成为阵列列表中的第2号元素。我的问题是,如果有可能只从阵列中得到像Joe这样的名字而没有得到拜登吗?
答案 0 :(得分:0)
是的,你可以做到
names.get(0).split("\\s+")[0] //this would get you "Joe"
获取姓氏可能
names.get(0).split("\\s+")[1] //this would get you "Biden"
这种方式完全取决于你的名字和姓氏之间有空格的事实。并且显然可以将0
编辑为您想要的任何索引。
答案 1 :(得分:0)
每个元素都将作为String对象位于ArrayList中。
您可以使用Str.split()将其拆分为数组并获取姓氏。
让我们说你的ArrayList
String str = names.get(0); //Joe Biden
String[] arr = str.split(" "); //this will create Array of String objects
System.out.println(arr[1]); will print Biden
但是要小心使用这种方法,它不适用于拥有3个名字或一个名字的人。具有一个名称的人将导致ArrayIndexOutOfBoundsException。拥有多个姓名的人将错误地打印姓氏。
但是你可以通过这样做来解决这个问题,
int arrLength = arr.length;
if(arrLength > 0) {
System.out.println(arr[arrLength - 1]); //this will always print the last name, if the name isn't empty
}