与android中的子串混淆

时间:2013-06-17 13:02:03

标签: java android substring lastindexof

我对android中的substring感到困惑。在我的数据库中我有像这样的DOGMATIKA-3.pdf文件pdf,我想选择“pdf”。你在android中做到了吗?我只想选择3封最后一封信,有人请帮帮我,谢谢。我已经尝试使用此代码,但强行关闭。

package mobile.download;

public class DownloadText extends Activity{
    public Koneksi linkurl;
    public Kondownload linkurl2;
    String url;
    String SERVER_URL;
    String SERVER_URL2;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.linkdownload);

        TextView mTextLink = (TextView) findViewById(R.id.LinkDownload);
        Bundle bundle = this.getIntent().getExtras();

        String param1 = bundle.getString("keyIdc");
        String param2 = bundle.getString("keyReference");
        if(param2.substring(-3, 0).equals("pdf"))
        {
            linkurl = new Koneksi(this);
            SERVER_URL = linkurl.getUrl();
            SERVER_URL += "/moodledata/"+param1+"/"+param2;
            mTextLink.setText(SERVER_URL);
            Pattern pattern = Pattern.compile(SERVER_URL);

           Linkify.addLinks(mTextLink, pattern, "");
        }
        else
        {
            linkurl2 = new Kondownload(param2);
            SERVER_URL2 = linkurl2.getUrl();

            mTextLink.setText(SERVER_URL2);
            Pattern pattern = Pattern.compile(SERVER_URL2);

           Linkify.addLinks(mTextLink, pattern, "");
        }

    }
}

5 个答案:

答案 0 :(得分:1)

最后3个字母是length() - 3length()(第二个参数是隐含长度(),所以没有必要)

param2.substring(params2.length() - 3)

但是,您可以使用更清晰的endsWith

param2.endsWith("pdf")

正是如此。

答案 1 :(得分:0)

  

我有像这样的DOGMATIKA-3.pdf文件pdf,我想选择   “PDF”

String test = "myPdf.pdf";
String extension = test.substring(test.lastIndexOf(".")+1, test.length());

或者你可以这样做:

String extension = test.substring(test.lastIndexOf(".")+1);

答案 2 :(得分:0)

尝试param2.substring(param2.indexOf("."), param2.length()).equals("pdf")而不是..

答案 3 :(得分:0)

如果您打算使用.substring(),请使用string.substring(string.length()-3)

但是,您也可以像这样使用.split()方法:

String [] split = string.split(".");

这将创建一个新数组,不包括“。”的所有实例。并将它们用作数组分隔符。换句话说,如果你在上面的字符串上调用了.split(),你就会得到

{ “DOGMATIKA-3”, “PDF”}

后一种方法适用于不是三个字符的文件扩展名。

答案 4 :(得分:0)

就像那样使用

  String substr = param2.substring(param2.length() - 3);
      if("pdf".equals(substr))
    {
        // use what you want
    }