雖然我已經問過關於類似問題的一個問題,那就是如何讓JAVA將一個String行分成兩部分,我沒有得到我想要的結果。我的項目涉及邏輯電路(門,導線,信號,聯繫...)。我在下面的方法需要做的是SEPARATE傳入聯繫人從傳出的。如果有傳入方法字符串是A B C -> D
和A B C
是傳入和D
是傳出聯繫人。我的代碼讀取符號->
之前的所有內容,但是我需要在該符號之後讀取,以免忽略符號本身。我必須單獨測試incoming contacts
和outgoing contacts
,測試也在下面。可以幫助嗎?讀取某個符號之前和之後的字符串
private List<Contact> inputs;
private List<Wire> innerWires;
public void parseContactsLine(String line)
{
String[] words = line.split(" ");
for(int i = 0; i < words.length; i++)
{
if(!(words[i].equals("->")))
{
Wire wire1 = new Wire(words[i]);
///Wire wire2 = new Wire(words[i]);
innerWires.add(wire1);
//innerWires.add(wire2);
Contact contact = new Contact(wire1, wire1, true);
inputs.add(contact);
outputs.add(contact);
}
else
break;
}
}
我從這段代碼的輸出是[A B C]
我的測試情況是:
List<Contact> ins = Arrays.asList(new Contact[]{
new Contact(new Wire("A"), new Wire("A"), true),
new Contact(new Wire("B"), new Wire("B"), true),
new Contact(new Wire("C"), new Wire("C"), true)}
);
List<Contact> outs = Arrays.asList(new Contact[]{
new Contact(new Wire("D"), new Wire("D"), false)}
);
注意incoming contacts
和outgoing contacts
分別測試了!不要太在意Wire
和Contact
會員。它們被正確定義。
什麼做的數組[0]和陣列[1]與裝飾一起代表( )? @ coder – Inferno
首先基於「 - >」進行分割,這會將你的字符串分成兩部分「A B C」(數組[0])和「D」(數組[1])。修剪用於去除尾隨和前導空白。然後你可以在空白處分割它們以獲得單獨的輸入A,B,C和D – coder
你的代碼接近我想要的!在此基礎上,我改變了我的方法,謝謝! – Inferno