【问题标题】:cannot convert from bufferedreader to string无法从缓冲读取器转换为字符串
【发布时间】:2014-01-26 16:07:41
【问题描述】:

我想从资产文件夹加载文件并在停用词 procces 中使用一个字符串,这是我的代码,但我收到错误“无法从缓冲读取器转换为字符串”

public void onClick(View v) {
    // TODO Auto-generated method stub
    if (v.getId()==R.id.button6){

        StringBuilder text = new StringBuilder();

        try {
            BufferedReader reader = new BufferedReader(
                new InputStreamReader(getAssets().open("Preposisi.txt"), "UTF-8")); 

            // do reading, usually loop until end of file reading 
            String mLine = reader.readLine();
            while (mLine != null) {
               //process line

               mLine = reader.readLine(); 
            }

            reader.close();
        } catch (IOException e) {
            //log the exception
        }

        Intent intent = new Intent(this, PreposisiRemoval.class);
        String test = ((TextView)findViewById(R.id.textView7)).getText().toString();
        String[] preposisi = {text}; "GET ERROR IN THIS LINE"
        StringBuilder resultFilter = new StringBuilder();

        Scanner fip1 = new Scanner(test);
            while (fip1.hasNext()){
                    int flag = 1;
                    String s1 = fip1.next();
                    for (int i = 0;i<preposisi.length; i++){
                        if (s1.equals(preposisi[i])){
                            flag=0;
                        }
                        }   
                        if(flag!=0){
                            System.out.println(s1);
                            resultFilter.append(s1+'\n');
                        }

                        Intent intent2 = getIntent();
                                String count = intent2.getStringExtra("result2");

                    intent.putExtra("resultFilter", resultFilter.toString());
                    intent.putExtra("count", count);
                    startActivity(intent);
                    }
        }
}

我在 String preposisi = {test} 行中遇到错误

【问题讨论】:

  • 您在哪一行从缓冲读取器转换为字符串
  • 你想在String[] preposisi = {text};这一行做什么?

标签: java android eclipse load assets


【解决方案1】:
StringBuilder text = new StringBuilder();

String test = ((TextView)findViewById(R.id.textView7)).getText().toString();
String[] preposisi = {text}; "GET ERROR IN THIS LINE";

“测试”还是“文本”???

【讨论】:

  • 文本(这是从资产文件夹加载的文件)
  • text 是 StringBuilder 的一个实例,您正在尝试转换为 String。 String[] preposisi = {test};我想是的
  • 如果使用 String[] preposisi = {test},我得到错误“无法从缓冲读取器转换为字符串”;
【解决方案2】:

textStringBuilderString 数组不兼容。你是说

StringBuilder text = new StringBuilder();
String[] preposisi = {text.toString()}; 

或者干脆

String[] preposisi = { test }; 

?

【讨论】:

    【解决方案3】:
    1. 改变你的阅读循环:

      String mLine = reader.readLine();
      while (mLine != null) {
         mLine = reader.readLine(); 
         text.append(mLine);  //You missed this line
      }
      

      否则你的 StringBuilder 将永远是空的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-30
      • 1970-01-01
      • 1970-01-01
      • 2015-11-19
      • 2014-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多