关于Java:与Android中的子字符串混淆

confused with substring in android

本问题已经有最佳答案,请猛点这里访问。

我对android中的子字符串感到困惑。 在我的数据库中,我有pdf文件,例如DOGMATIKA-3.pdf,我要选择" pdf"。 如何在android中做到这一点? 我只想选择最后3个字母,任何人都可以帮助我,谢谢。 我已经尝试过使用此代码,但已强制关闭。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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,"");
        }

    }
}


最后3个字母为length() - 3length()(第二个参数隐式为length(),因此没有必要)

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

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

1
param2.endsWith("pdf")

正是这样。


只是那样使用

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


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

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

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

这将创建一个排除所有"。"实例的新数组。 并将它们用作数组分隔符。 换句话说,如果您在上面的字符串中调用了这个.split(),您将得到

{" DOGMATIKA-3"," pdf"}

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


尝试使用param2.substring(param2.indexOf("."), param2.length()).equals("pdf")


i have file pdf like this DOGMATIKA-3.pdf and i want to select the
"pdf"

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

或者,您可以执行以下操作:

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