2014-02-07 145 views
0

Java非常新:试图学习它。我创建了一个数组并且想要访问数组中的单个组件。如何在使用while和for循环时访问和处理字符串数组中的单个值

我遇到的第一个问题是如何将数组打印为批处理或整个数组,如下所示?例如:在最后valueMyValue4我添加了一个换行符,这样当打印这些值时,输出将如下所示:必须有更好的方法来执行此操作?

MyValue1 
MyValue2 
MyValue3 
MyValue4 

MyValue1 
MyValue2 
MyValue3 
MyValue4 

接下来的事情,我需要做的是,操纵或代替别的东西,例如一个值:当重复变量是在一定的数量或价值与myvalue的MyValx。 因此,当重复变量达到3时,将我的值更改为其他值,然后在达到6时将其更改回来。

我熟悉Replace方法,我只是不确定如何将它们放在一起。 我在混合中使用whilefor loop仅更改阵列的某些部分时遇到问题。

我的代码:

public static String[] MyArray() { 
    String MyValues[] = { "MyValue1", "MyValue2", "MyValue3", "MyValue4\n" }; 

    return MyValues; 
} 

public static void main(String[] args) { 

    int repeat = 0; 
    while (repeat < 7) { 

     for (String lines : MyArray()) { 
      System.out.println(lines); 
     } 

     repeat = repeat + 1; 

     if (repeat == 7) { 
      break; 
     } 
    } 

} 

回答

1

也许使用for周期更短:

for (int i = 0; i < 7; i++) { 
    for (String lines : MyArray()) { 
     // Changes depended by values. 
     if (i > 3) { 
      lines = MyValx; 
     } 

     System.out.println(lines); // to have `\n` effect 
    } 
    System.out.println(); 
} 

而且BTW变量将小写的开始,而不是与enter\n)结束。因此,使用:的

String myValues[] = {"MyValue1", "MyValue2", "MyValue3", "MyValue4"}; 

代替:

String MyValues[] = { "MyValue1", "MyValue2", "MyValue3", "MyValue4\n" }; 

和eache内循环,而不是在这之后添加System.out.println();

+0

感谢大家的所有建议和示例:这非常棒。 – Asynchronous

+0

@UnaverageGuy,欢迎您! –

0

MyValues[n] = "value";

其中n是阵列中的位置。

+0

所以我在'for循环'中操作数组?因为我仍然希望打印X次,但在循环中替换该值。 – Asynchronous

+0

种。你可能无法在你正在使用的foreach循环中改变他的数组,但你可以在循环中使用它: 'for(int i = 0; i gerbenk

0

您可以考虑使用System.out.println()不带任何参数打印一个空行,而不是在数据中插入换行符。

你已经知道for-each循环,但考虑计数控制的循环,如

for (int i = 0; i < lines.length; i++) { 
    ... 
} 

在那里,你可以使用i访问您的阵列,以及作为决定采取进一步行动。

根据字符串中的数字替换数组项可能会有点棘手。如果你熟悉这个,正则表达式肯定会完成这项工作。如果不是,我可以推荐学习这个,因为它在将来的情况下肯定会有用。

更简单的方法可能会使用

int a = Integer.parseInt("123"); // returns 123 as integer 

但只适用于字符串,其中包含纯数字(正面和负面的)。它不适用于abc123。这会引发异常。

这些是一些想法,你可以尝试和尝试。也过度使用文档。 ;-)