簡體   English   中英

基於新行android分割字符串

[英]Split string based on new line android

我有包含網絡流量的文件,我想將POST請求拆分為兩個字符串標題和正文。 我有這個問題。

        sc.useDelimiter(" =========================");
        String cellsbody=null;
        String cellsheader= null;

        String[] line1 = new String[2];

        Map<String, String> finalParseHeader =   new HashMap<String, String>();;
        while (sc.hasNext()) {

            line1 = sc.next().split("\r\n\r\n");
            if(line1.length >= 2) {
                cellsheader = line1[0];
                cellsbody = line1[1];
                Log.d("Post_Header", cellsheader); // Header Part
                Log.d("Post_Body", cellsbody);    // Body Part
            }else{
                cellsheader = line1[0]; // Handle GET when there is no body

                 Log.d("GET_header", cellsheader);
            }


        }

我可以知道我的代碼有什么問題嗎? 我不會根據“ \\ r \\ n \\ r \\ n”對它們進行拆分。 我嘗試了很多組合,但我不明白。 這是我的文本文件包含:

  POST /location/update?ts=1504152243110 HTTP/1.1
  X-Cc-Device: 
  imei=37abc5afce16b603&model=Huawei&language=en&version=325&os=Android 
  23&service=1&api=1.0.0&wifi=1
  Cookie: u=; s=
  Content-Type: application/x-www-form-urlencoded
  Content-Length: 40
  Host: hk.meecha.net
  Connection: Keep-Alive
  Accept-Encoding: gzip
  User-Agent: okhttp/3.5.0

 isactived=1&lat=0.0&lng=0.0&haveredbag=1    <= Here the body for Post request
  =========================
 GET /easemob/server.json?
 sdk_version=3.3.2&app_key=chatcat%23chatcat&file_version=1 HTTP/1.1
 Host: rs.easemob.com
 Connection: Keep-Alive
 User-Agent: Easemob-SDK(Android) 3.3.2

您可以使用insertted的bufferReader,因為默認情況下它逐行讀取文件。 您只需要聲明列表並向其中添加行即可。 試試下面的代碼

ArrayList<String> itemList = new ArrayList<String>();
BufferedReader sc = new BufferedReader(new 
InputStreamReader(yourfilepath));
String str;
while ((str = sc.readLine()) != null) {
itemList.add(str);
}
in.close();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM