2016-04-28 49 views
1

您好,我想了解Enchanced for loops和Strings。Enchanced for Loop for a String

,所以我知道,对于整数for循环是这样:

public static void main(String args[]){ 
int[] squares = {0,1,3,4,5} 
for(int i = 0; i < squares.length; i++) 

,你可以按照如下

for (int i : squares) 

使其增强循环,但我想知道如何做到既正则for循环和加紧循环的字符串?

+1

什么你想要迭代?数组中的字符串或多个字符串的字符?另外,在Java 8+中,您可以使用“Stream”。 –

回答

4

增强for循环只适用于可迭代的类型,或者如果类型的对象是数组。

你不能这样做因为字符串不是一个Iterable类型。

你可以做的是,从获取字符串中的字符数组,它遍历作为

for (char c : str.toCharArray()) { 


} 

如果它是一个字符串数组,你可以简单地改变你的数据类型为字符串。

+0

所以你会发布将字符串更改为字符数组? – fijilemon12

+0

它不会改变字符串,只是为了循环的目的,你正在做它。 –

-1

以非常相似的方式:

String[] names = {"John","Jack","Bob","Tracey","Cindy"}; 
for(int i = 0; i < names.length; i++) { 
    System.out.println(names[i]); 
} 

所谓的增强:

String[] names = {"John","Jack","Bob","Tracey","Cindy"};  
for (String i : names) { 
    System.out.println(i); 
} 
+0

而反对票是.... – DevilsHnd

+0

非常感谢! – fijilemon12

+0

非常欢迎;) – DevilsHnd

0

是,在问候的Java的语言,绝对是可以做到的。

  • 首先声明并初始化名为“name”的String数组。

    String[] names = {"Bob","Jane","Joe"}; 
    
  • 然后使用Enchanced环路

    for(String i: names) 
        System.out.println(i); 
    
  • 然后使用定期for循环

    for(int i=0; i<names.length; i++) 
        System.out.println(names[i]); 
    
  • 生产将是为每个完全相同的结果循环:

    Bob 
    Jane 
    Joe 
    

下面是完整的码,按上述。尝试一下,它会工作:

public static void main(String[] args) { 

     String[] names = {"Bob","Jane","Joe"}; 

     for(String i: names) 
      System.out.println(i); 

     for(int i=0; i<names.length; i++) 
      System.out.println(names[i]);  
    }