我有一个数组,我想剥离和转换到另一个数组

本文关键字:数组 转换 另一个 有一个 剥离 | 更新日期: 2023-09-27 18:13:00

我有一个数组(2字段数组),我想剥离"/" off第一个字段,并检索剩余的数组与相同的第二个字段值…

这就是我想做的…

   CurrencyPairs = new string[] { "EURUSD", "USDJPY", "GBPUSD", "EURGBP", "USDCHF", "AUDNZD", "CADCHF", "CHFJPY", "EURAUD", "EURCAD", "EURJPY", "EURCHF", "USDCAD", "AUDUSD", "GBPJPY", "AUDCAD", "AUDCHF", "AUDJPY", "EURNOK", "GBPCAD", "GBPCHF", "NZDJPY", "NZDUSD", "EURNZD", "USDNOK", "USDSEK", "XAUUSD", "XAGUSD", "XTIUSD", "XBRUSD" };

这个数组将从c#应用程序传递到我的Java应用程序,然后将为整个字符串创建一个整数ID…

现在,我想把第三个字符串"EUR"answers"USD"分成两个,然后加上"/"。它看起来像这样:

ReceivedPairs = new string[] { "EUR/USD", "USD/JPY", "GBP/USD", "EUR/GBP", "USD/CHF", "AUD/NZD", "CAD/CHF", "CHF/JPY", "EUR/AUD", "EUR/CAD", "EUR/JPY", "EUR/CHF", "USD/CAD", "AUD/USD", "GBP/JPY", "AUD/CAD", "AUD/CHF", "AUD/JPY", "EUR/NOK", "GBP/CAD", "GBP/CHF", "NZD/JPY", "NZD/USD", "EUR/NZD", "USD/NOK", "USD/SEK", "XAU/USD", "XAG/USD", "XTI/USD", "XBRUSD" };

并且,Java将值附加到数组中,使其看起来像这样…

func(String Pairs, int Id);
func("EURUSD",928);

哪一对将始终附加到一个生成的ID..

如何将配对分成两组?我如何仍然使值不离开分裂后的数组?

感谢您的宝贵时间。

编辑:我已经尝试过currencyPairs.strip,但这不起作用,因为我没有值在字符串中剥离…没有"/",没有"-"。只是分割子字符串长度是我需要的。我知道在c++中是这样,但是在Java中…失踪的

我有一个数组,我想剥离和转换到另一个数组

如果您使用的是Java 8,您可以这样做:

String[] CurrencyPairs = new String[] { "EURUSD", "USDJPY", "GBPUSD", "EURGBP", "USDCHF", "AUDNZD", "CADCHF", "CHFJPY", "EURAUD", "EURCAD", "EURJPY", "EURCHF", "USDCAD", "AUDUSD", "GBPJPY", "AUDCAD", "AUDCHF", "AUDJPY", "EURNOK", "GBPCAD", "GBPCHF", "NZDJPY", "NZDUSD", "EURNZD", "USDNOK", "USDSEK", "XAUUSD", "XAGUSD", "XTIUSD", "XBRUSD" };
String[] ReceivedPairs = Arrays.stream(CurrencyPairs)
    .map(s -> s.substring(0, s.length()/2) + "/" + s.substring(s.length()/2))
    .toArray(String[]::new);

如果你不想使用流,也可以使用普通的for循环:

ReceivedPairs = Arrays.copyOf(CurrencyPairs, CurrencyPairs.length);
for(int i = 0; i < ReceivedPairs.length; i++)
        ReceivedPairs[i] = ReceivedPairs[i].substring(0, ReceivedPairs[i].length()/2) + "/" + ReceivedPairs[i].substring(ReceivedPairs[i].length()/2);