2015-09-15 105 views
0

我有一個數組(2場數組),我想剝離第一個字段「/」,並檢索剩餘數組與其相同的第二個字段值。 ..我有一個陣列,我想剝離並轉換爲另一個陣列

這就是我想要做的..

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」「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中...缺少

+0

請問您的問題其實有什麼用C#代碼?看起來你正在嘗試在Java代碼中做所有事情,對吧?目前還不清楚與ID做的部分是做什麼的,但是這聽起來與分割部分是分開的... –

+0

ReceivedPairs [i] = ReceivedPairs [i] .Split(「/」)[0] + ReceivedPairs [ i] .Split(「/」)[1] – kevintjuh93

+0

我正在做我的Java代碼......沒有處理C#,只有他們都處理ID。所以,它必須是他們看到的相同的ID .... 感謝您的親切答案。 – ThisDude

回答

1

如果您使用的是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); 
+1

流很慢... – kevintjuh93

+0

謝謝,若昂, 我試過用這個...但是,它似乎是Arrays.stream(「需要一個整數,而不是一個字符串」)。 或者,我錯了嗎? – ThisDude

+0

@KevinKal也許,但你並不完全需要像這樣的應用程序的性能。無論哪種方式,我添加了for循環解決方案。 –