2013-10-23 110 views
2

我有一个名称列表(第一个和最后一个)。我需要找到一种方法来分割“”,并只将姓氏打印到控制台。我目前有这个,但是,当然,它仍然是打印的第一个名字。用空格拆分字符串

for (int i=0; i<players.size(); i++) 
{ 
    String s = players.get(i).toString(); 
    for(String token:s.split(" ")) 
    System.out.println(token); 
+0

这是什么? Java的? – Cheesebaron

+0

请指定您想要使用的语言......这就是标签的用途。 – Floris

+0

创建令牌数组,然后打印最后一个元素。假设姓氏在其中没有空格。对不起,这是一个可怕的假设。 – Floris

回答

2

无需使用内部for循环。如下所示更改它。

for (int i=0; i<players.size(); i++) 
{ 
    String s = players.get(i).toString(); 
    String [] token = s.split(" "); 
    System.out.println(token[token.length -1]);  
} 
+0

除非名称是Jack the Ripper。 “你好!先生!” – Floris

+0

如果一个人只有一个名字(雪儿,普林斯,伊丽莎白),那么这将不起作用,如果这个人有双名(比利雷赛勒斯),它也不会奏效。 – pburka

+0

是的。它不会处理这些情况。但根据OP发布的内容,我认为他不在意处理这些案件。 – Prateek

0

在Java中,String.split()返回一个令牌数组。而不是迭代数组并打印每个数组,然后将该数组存储在一个临时变量中(如String[] tokens),然后只打印最后一个。 (你可以用tokens.length找出阵列有多长。)

0
for (int i=0; i<players.size(); i++) 
{ 
    String s = players.get(i).toString(); 
    String[] str=s.split(" ") 
    System.out.println(str[str.length-1]); 
} 
相关问题