0

我对android中的子字符串感到困惑。在我的数据库中,我有像 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, "");
        }

    }
}
4

5 回答 5

1

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

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

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

param2.endsWith("pdf")

正是这样做的。

于 2013-06-17T13:05:09.247 回答
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);
于 2013-06-17T13:05:57.420 回答
0

试试吧param2.substring(param2.indexOf("."), param2.length()).equals("pdf")。。

于 2013-06-17T13:07:32.980 回答
0

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

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

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

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

{"DOGMATIKA-3","pdf"}

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

于 2013-06-17T13:07:37.167 回答
0

就这样使用

  String substr = param2.substring(param2.length() - 3);
      if("pdf".equals(substr))
    {
        // use what you want
    }
于 2013-06-17T13:08:13.000 回答