我有一個從jsoup刮沿此線返回一個字符串,東西的方法:分裂某些部分
New York Aer Lingus EI104 23 Feb 05:15
首先,我希望能夠將字符串格式化成類似此:
AerLingus From: New York No: EI104 Time: 23 Feb 05:15 Status: Arrived
既然這樣我使用一個字符串分割並在陣列中的每個單詞分割成的元件。麻煩的是,有些航空公司有兩個名字,有些是一個,有些是離開的名字。如果這個問題一直都是固定的,我可以將一些元素連接在一起並保留在那個元素上,但是按照這個原則,進入數組的元素數量是動態的。
如何將字符串的某些元素拆分爲數組元素而不是其他元素?有沒有辦法做到這一點?
我希望能夠說,紐約是一個元素,艾爾林格斯是一個元素等等......
public ArrayList<ArrivalDetails> process() throws IOException{
Document doc = Jsoup.connect(url).get();
Elements tableRow = doc.getElementsByTag("tr");
for(Element tr : tableRow){
if(tr.text().contains(airline)){
if(tr.text().contains("Arrived")){
String delims = "[ ]+";
String[] singleRowArray = tr.text().split(delims);
ArrivalDetails temp = new ArrivalDetails(singleRowArray);
capture.add(temp);
}
}
}
testPrint();
return capture;
}
public static void testPrint(){
System.out.println("====================TEST=======================");
System.out.println(capture.get(capture.size()-8));
System.out.println("================END TEST=======================");
}
我的其他類
public class ArrivalDetails {
String origin;
String airline1;
String airline2;
String flightNo;
String date;
String month;
String arrTime;
String status;
public ArrivalDetails(String[] singleRowArray) {
this.origin = singleRowArray[0];
this.airline1 = singleRowArray[1];
this.airline2 = singleRowArray[2];
this.flightNo = singleRowArray[3];
this.date = singleRowArray[4];
this.month = singleRowArray[5];
this.arrTime = singleRowArray[6];
this.status = singleRowArray[7];
}
@Override
public String toString() {
String airline = airline1.concat(airline2);
return airline1 + airline2 + " From: " + origin + " " + " No: " + flightNo + " Time: "+date+" "+month+" "+arrTime +" Status: "+ status ;
}
}
這是Java而不是JavaScript。 –
由於該字符串沒有關於具有特徵尺寸的「Aer Lingus」或「紐約」的保證,因此沒有單獨的方法可以在沒有預知功能的情況下始終得到正確的分割,即已知分詞列表。 – abiessu
您如何計劃瞭解「紐約美國人」是否與航空公司「紐約美國人」或「紐約」與航空公司「美國人」是目的地「新」?我沒有與JSoup一起工作,但你應該看看你是否可以在每個「真實」令牌後添加一個分隔符。 – clcto