Java 循环未正确创建字符串

标签 java arrays string loops for-loop

我使用 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/

相关文章:

java - Jackson数据绑定(bind)时如何获取Pojo名称引用的Json对象

java - 如何从文件中定义给定大小的数组?

java - 当仅使用 get() 和 set() 方法时,将 AtomicBoolean 替换为原始类型?

c - 存储数组的子集

android - 两行非常简单的代码行不通,就是不行。 (安卓)

java - 用 .replaceAll 替换特殊字符

java - 如何找到与给定类共存的 jar

arrays - 使用具有命名范围的数组加速 VBA

javascript - 如何将字符串值映射到 HTML id

c++ - c++ 中句子的反向单词,在 Google Code jam 上提问