很抱歉,如果这个问题有点令人困惑。基本上,我有一个名为list1的arraylist。 list1包含:
a Mark
c Peter
r Edwin
i Rachel
f Sebastian
p
如何只访问单数字后面的名字?例如,我想只访问名称" Mark,Peter,Edwin,Rachel和Sebastian"。我知道如何访问第一个字母" a,c,r,i,f,p"但不知道如何访问其余的名字。以下是我到目前为止的情况:
for (Iterator<String> it = list1.iterator(); it.hasNext();) {
String s = it.next();
System.out.println(s.charAt(0));
}
for (Iterator<String> it = list1.iterator(); it.hasNext();) {
String s1 = it.next();
for (int i=2; i<s1.length(); i++){
System.out.print(s1.charAt(i));
}
}
这就是我的输出:
a
c
r
i
f
p
MarkPeterEdwinRachelSebastian
但我希望它看起来像这样:
c
r
i
f
p
Mark
Peter
Edwin
Rachel
Sebastian
答案 0 :(得分:1)
你几乎就在那里,问题在于内部for循环。
因为您只使用print
,所以它不会打印换行符,并且所有内容都保持在同一行
for (Iterator<String> it = list1.iterator(); it.hasNext();) {
String s = it.next();
System.out.println(s.charAt(0));
}
for (Iterator<String> it = list1.iterator(); it.hasNext();) {
String s1 = it.next();
for (int i=2; i<s1.length(); i++){
System.out.print(s1.charAt(i));
}
System.out.println();
}
答案 1 :(得分:0)
使用String的split方法并用空格分隔每个字符串要容易得多。然后,您将得到一个包含两个元素的数组,即字母和名称。它应该如下工作:
for(String str : list1)
{
String[] splitted = str.split(" ");
System.out.println(splitted[0]);
}
for(String str : list1)
{
String[] splitted = str.split(" ");
System.out.println(splitted[1]);
}
答案 2 :(得分:0)
您可以使用for-each简单地遍历列表,而不是使用迭代器
短代码
for (String s : list1) {
System.out.println(s.charAt(0));
}
for (String s : list1) {
System.out.println(s.substring(2));
}
答案 3 :(得分:0)
如果我理解正确,看起来你的问题只是一个格式问题,而不是这个
(Iterator<String> it = list1.iterator(); it.hasNext();) {
String s1 = it.next();
for (int i=2; i<s1.length(); i++){
System.out.print(s1.charAt(i));
}
尝试
(Iterator<String> it = list1.iterator(); it.hasNext();) {
String s1 = it.next();
for (int i=2; i<s1.length(); i++){
System.out.println(s1.substring(2));
}
你的印刷品在一行中返回所有内容,而不是在arraylist中的另一行foreach项目。