我对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, "");
}
}
}
答案 0 :(得分:1)
最后3个字母是length() - 3
到length()
(第二个参数是隐含长度(),所以没有必要)
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
}