大家好,
我正在解析一个如下所示的文本文件:
wvList = (WebView) view.findViewById(R.id.wv);
wvList .setHorizontalScrollBarEnabled(false);
wvList .getSettings().setJavaScriptEnabled(true);
wvList .getSettings().setDomStorageEnabled(true);
wvList .addJavascriptInterface(new WebAppInterface(mContext), "Android");
wvList .setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.getUrl().toString());
return false;
}
});
public class WebAppInterface {
Context mContext;
/**
* Instantiate the interface and set the context
*/
WebAppInterface(Context cxt) {
mContext = cxt;
}
/**
* Show a SnackBar from the web page
*/
@JavascriptInterface
public void showMessage(String msg) {
wvList .post(new Runnable() {
@Override
public void run() {
wvList .clearHistory();// Not working
wvList .loadURL(url.toString);
}
});
}
}
希望它可以这样读:
114.474998474121 15.7440004348755 25.806999206543 -873 172 182 188
114.46199798584 15.7419996261597 25.8799991607666 -1396 180 192 205
目前我的文本解析代码并没有给出。这是我的代码:
[[114.475,15.744,25.807,-873.0,172.0,182.0,188.0],
[114.462,15.742,25.88,-1396.0,180.0,192.0,205.0]]
此代码将所有文本解析为单个列表,如下所示:
main = do
text <- readFile "mytext.txt"
let
pcVal = map read (words text) :: [Float]
print pcVal
return ()
我无法找到如何将整行(在文本文件中)作为列表,第二行作为另一个列表直到文件末尾。感谢有人有这方面的经验。感谢。
答案 0 :(得分:7)
您可以使用lines
功能;例如map words $ lines text
。
这也是帮助函数的好时机,即
let parse :: String -> [Float]
parse line = map read $ words line
pcVal = map parse $ lines text
答案 1 :(得分:0)
感谢Dan建议使用行作为解决方案。以下代码适用于我的问题:
main = do
text <- readFile "mytext.txt"
let
readparse txtLines = map read txtLines :: [Float]
parse txtLines = map (words) (lines txtLines)
pcval = map readparse (parse text)
print pcVal
return ()
希望它也能帮到别人。谢谢,欢呼!