我使用 for 循环将“m”附加到字符串数组,然后将每个字符串传递到 DDE 连接以下载股票报价。
String[] symbols = {"AUDUSD", "EURUSD", "GBPUSD", "USDJPY"};
String ibfxSym[] = new String[symbols.length];
for(int i = 0; i<symbols.length;i++) {
ibfxSym[i] = symbols[i] + "m";
}
// start DDE
for (int i = 0; i < connections.length; i++) {
try {
connections[i].getQuote(ibfxSym[i]);
} catch (Exception e) {
System.out.println("error");
}
这不起作用,但如果我传入:
String[] ibfxSym = {"AUDUSDm", "EURUSDm", "GBPUSDm", "USDJPYm"};
代替循环它工作得很好。我尝试打印在循环中创建的每个字符串,它们看起来相同。循环添加了一些我看不到的奇怪格式吗?我什至尝试过:
ibfxSym[i] = String.valueOf(ibfxSym[i].trim());
看看是否有回车符或附加了我看不到的东西。关于这里出了什么问题有什么想法吗? 谢谢。
最佳答案
您不是从正在修改的同一个数组中读取...
ibfxSym[i] = symbols[i] + "m";
for (int i = 0; i < connections.length; i++) {
try {
connections[i].getQuote(ibfxSym[i]);
换句话说,您假设通过迭代连接
而派生的i
也是ibfxSym
的有效索引。
关于Java 循环未正确创建字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4684032/