2016-02-09 45 views
0

如果我试图将两个单独的int值应用于在字符串数组内输入的值,我该如何去做?我尝试了很多方法,甚至有可能。例如,下面是我在一个单独的项目测试代码的简单一点:我不知道如何应用值

public static void main(String [] args) { 

    Cards gaI = new Cards("Example 1", "Attack", 5, "Defense", 5); 
    Cards abI = new Cards("Example 2", "Attack", 5, "Defense", 10); 
    Cards aII = new Cards("Example 3", "Attack", 5, "Defense", 10); 

    Cards [] cards = new Cards [3]; 

    cards [0] = gaI; // 
    cards [1] = abI; 
    cards [2] = aII; 

    //for (int i = 0; i < cards.length; i++){ 
     for (Cards c : cards){ 
      System.out.print(c); 
     } 
    } 
} 

我想要做的是建立两个不同的阵列,或者只是一个用数字值,并将其应用到各上面的对象给他们自己的设定值。如果仅仅处理每个对象而不是使它们成为对象,只是将它们声明为变量,然后在同一个类中单独添加所有附加数据,会更有意义吗?让他们以适当的格式打印是很容易的部分。我希望能够使int值成为每个卡的永久值。例如,类似于Yu-Gi-Oh卡。我希望我正确地问这个问题。

+0

您能否以更清晰的方式更改您的问题? – radoh

+0

“自己的设定值”是什么意思? – radoh

+0

我想我可能会搞清楚。但为了回答你的问题,我的意思是我想从一个字符串数组中获取一个值,并从两个不同的int数组中获取两个int值,并返回带有int值的字符串。例如(“Name”,250,250),并使字符串保持int的永久值,但我一直在说这一切都是错误的。还没有弄清楚,但我正处在正确的轨道上。 –

回答

0

您可以通过多种阵列在同一时间使用一个简单的循环

int[] intValues1 = ...; 
int[] intValues2 = ...; 
String[] stringValues = ...; 
// if you are sure the arrays have the same length, this will work OK for you 
for (int i = 0; i < intValues1.length; i++) { 
    Card c = new Card(stringValues[i], intValues1[i], intValues2[i]); 
    ... 
} 

如果数组的长度不同,那么您需要调整您的循环条件迭代,或者你可能会得到IndexOutOfBounds例外,例如这样

for (...; i < intValues1.length && i < intValues2.length && i < stringValues.length; ...) 

要在Card永久

class Card { 
    final String stringVal; 
    final int intVal1; 
    final int intVal2; 
    public Card(stringVal, intVal1, intVal2) { 
     this.stringVal = stringVal; 
     this.intVal1 = intVal1; 
     this.intVal2 = intVal2; 
    } 
} 

而且很明显的价值,定义仅适用于类干将。

+0

迄今为止最好的解释之一呢。非常感谢! –