Android&String.index()
MainActivity.java
1 package com.zachary.xmlresolve; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 import java.net.HttpURLConnection; 7 import java.net.MalformedURLException; 8 import java.net.URL; 9 10 import android.app.Activity; 11 import android.os.Bundle; 12 import android.util.Log; 13 import android.view.Menu; 14 import android.widget.TextView; 15 16 public class MainActivity extends Activity { 17 private TextView myTextView; 18 private String xml; 19 private boolean finish = false; 20 final static String TAG = "LOGCAT"; 21 @Override 22 protected void onCreate(Bundle savedInstanceState) { 23 super.onCreate(savedInstanceState); 24 setContentView(R.layout.activity_main); 25 //String xmlStr = "![CDATA[你好啊 。。。 ]]"; 26 myTextView = (TextView)findViewById(R.id.myTextView); 27 //xml = getMidString(xmlStr, "![CDATA[", "]]"); 28 //myTextView.setText(xml); 29 //System.out.println(xml); 30 String urlStr ="http://box.zhangmen.baidu.com/x?op=12&count=1&title=%E6%80%92%E6%94%BE%E7%9A%84%E7%94%9F%E5%91%BD$$%E6%B1%AA%E5%B3%B0$$$$"; 31 new downloadThread(urlStr).start(); 32 while(!finish) ; 33 myTextView.setText(xml); 34 finish = false; 35 String count = getMidString(xml, "<count>", "</count>"); 36 String encode, decode, lrcid, musicUrlStr, lrcUrlStr; 37 if(count != "0") 38 { 39 encode = getMidString(xml, "<encode><![CDATA[", "]]></encode>"); 40 decode = getMidString(xml, "<decode><![CDATA[", "]]></decode>"); 41 lrcid = getMidString(xml, "<lrcid>", "</lrcid>"); 42 musicUrlStr = getMusicUrlStr(encode, decode); 43 lrcUrlStr = getLrcUrlStr(lrcid); 44 myTextView.setText(musicUrlStr + "\n******\n" + lrcUrlStr); 45 } 46 else 47 myTextView.setText("Not found"); 48 } 49 public String getMidString(String inputstring, String left,String right){ 50 int k0 = inputstring.indexOf(left); 51 if(k0<0){ 52 return ""; 53 } 54 int k1= k0+left.length(); 55 int k2 = inputstring.indexOf(right,k1); 56 if(k2<=k1){ 57 return ""; 58 } 59 String return_v = inputstring.substring(k1,k2); 60 return return_v; 61 } 62 63 public String getMusicUrlStr(String encode, String decode){ 64 int k0 = encode.lastIndexOf("/"); 65 if(k0<0) 66 return ""; 67 String musicUrlStr = encode.substring(0, k0+1) + decode; 68 return musicUrlStr; 69 } 70 71 public String getLrcUrlStr(String lrcid){ 72 if(lrcid == "0") 73 return ""; 74 String lrcUrlStr = "http://box.zhangmen.baidu.com/bdlrc/"; 75 String mid = lrcid.substring(0, lrcid.length()-2); 76 return lrcUrlStr + mid + "/" + lrcid + ".lrc"; 77 } 78 class downloadThread extends Thread { 79 String urlStr; 80 downloadThread(String urlStr){ 81 this.urlStr = urlStr; 82 Log.i(TAG, "Creat the Thread"); 83 } 84 85 @Override 86 public void run() { 87 StringBuffer sb = new StringBuffer(); 88 String line = null; 89 BufferedReader buffer = null; 90 try { 91 URL url = new URL(urlStr); 92 HttpURLConnection urlConn = (HttpURLConnection)url.openConnection(); 93 buffer = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); 94 while((line = buffer.readLine())!=null) 95 sb.append(line); 96 } catch (MalformedURLException e) { 97 e.printStackTrace(); 98 } catch (IOException e) { 99 e.printStackTrace(); 100 }finally{ 101 try { 102 buffer.close(); 103 xml = sb.toString(); 104 finish = true; 105 //myTextView.setText(xml); 106 System.out.println(xml); 107 Log.i(TAG, xml); 108 } catch (IOException e) { 109 e.printStackTrace(); 110 } 111 } 112 113 } 114 115 116 } 117 118 @Override 119 public boolean onCreateOptionsMenu(Menu menu) { 120 // Inflate the menu; this adds items to the action bar if it is present. 121 getMenuInflater().inflate(R.menu.main, menu); 122 return true; 123 } 124 125 }
posted on 2013-04-19 20:19 Zachary_wiz 阅读(190) 评论(0) 编辑 收藏 举报