【问题标题】:Searching ArrayList with user input使用用户输入搜索 ArrayList
【发布时间】:2014-03-02 20:14:23
【问题描述】:

现在,我正在从一个网站获取问题列表并将其放入 ArrayList<String> 中。

现在,我如何获取用户输入,我将其转换为字符串 (sSearchValue),并使用 ArrayList 检查是否有匹配项?如果它找到一个包含用户搜索的问题,它会显示它吗?

package com.malthorn.anyquestion;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import com.malthorn.gasculator.R;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Document doc;
        ArrayList<String> urls = new ArrayList<String>();
        EditText iSearchValue = (EditText) findViewById(R.id.iQuestion);
        String sSearchValue = iSearchValue.getText().toString();

        try {

            doc = Jsoup.connect("http://www.reddit.com/r/askscience/search?q=flair%3A%27Psych%27&sort=top&restrict_sr=on").get();

            Elements links = doc.select("a[href]");
            for (Element link : links) {
                String href1=link.attr("href");
                //
                if(href1.startsWith("http://www.reddit.com/r/askscience/"))
                 {
                    urls.add(link.attr("href"));
                 }

                System.out.println("\nlink : " + link.attr("href"));

            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

【问题讨论】:

    标签: android string search arraylist


    【解决方案1】:
    public String getQuestion(String[] questions, String sSearchValue){
        for(String question : questions){
            if(question.equals(sSearchValue))
                return question;
        }
    
        return "";
    }
    

    此代码搜索完全匹配,如果您需要查找与搜索词相似的问题,我建议您在谷歌上搜索字符串类型的方法 subString 以及在模式匹配中使用正则表达式。

    【讨论】:

    • 好的,谢谢!通过查看我的 jsoup 解析,您知道我是否正确执行了吗?例如,我是否将正确的数据放入 ArrayList 中?
    • 另外,在您的代码中,您使用的是 string[] 问题和问题,如果它的字符串是 sSearchValue,您能否解释一下它是如何搜索用户输入的?
    • 示例代码循环遍历字符串数组(我想其中包含问题),如果他找到与发送的字符串匹配的字符串(sSearchValue),他会返回该问题对不起,我不熟悉使用 Jsoup 解析系统 ;)
    • 但我要问的是,问题只是一个字符串值,因为用户输入的是一行?
    • 我现在很困惑 xD 如果用户输入了一些东西,无论是一个词还是一个短语,上面的代码都会搜索你提供的字符串(问题)数组,如果他找到则返回问题它或一个空字符串,如果他不知道如果您仍然需要帮助,请改写问题,因为我显然不理解它xD 谢谢!
    猜你喜欢
    • 2021-11-23
    • 2021-06-16
    • 2017-09-03
    • 1970-01-01
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    相关资源
    最近更新 更多