2013-06-17 2 views
0

Я запутался с подстрокой в ​​android. в моей базе данных у меня есть файл pdf, как этот DOGMATIKA-3.pdf, и я хочу выбрать «pdf». ho сделать это в android? я просто хочу выбрать 3 последних письма, кто-нибудь, пожалуйста, помогите мне, спасибо. Я уже пытаюсь с этим кодом, но получил силу близко.путать с подстрокой в ​​android

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

Какова ваша ошибка .. – smk

+0

@smk IndexOutOfBoundsException – Blackbelt

+0

Читайте документацию: http://docs.oracle.com/javase/6/docs/api/java/lang /String.html#substring%28int,%20int%29. Объяснение прямо здесь. Первый параметр не может быть отрицательным. – BLaZuRE

ответ

1

последние 3 буквы length() - 3 к length() (второй параметр неявным длина(), так что не надо)

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

однако, вы могли бы использовать endsWith что понятнее:

param2.endsWith("pdf") 

который делает точно это.

+0

njzk2, спасибо очень за вашу помощь: D. я использую второй и успех !!! – blackneko

0

У меня есть файл PDF, как этот DOGMATIKA-3.pdf и я хочу, чтобы выбрать "PDF"

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

Или вы можете просто сделать:

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

@downvoter Я что-то пропустил? –

+1

Я не вижу ничего плохого в вашем ответе. Я постараюсь, чтобы отрицать нисходящего! – JorganPubshire

0

попробовать param2.substring(param2.indexOf("."), param2.length()).equals("pdf") вместо этого.

+1

Это всегда возвращает false. И если у вас есть \t 'String param2 =" file.name.pdf ";' это не сработает. –

0

Если вы намерены использовать .substring(), используйте string.substring(string.length()-3).

Однако, вы можете также использовать метод .split() следующим образом:

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

Это позволит создать новый массив, исключая все экземпляры «» и использовать их как разделители массива. Другими словами, если вы назвали этот .split() на вашей строке выше, вы получите

{ «DOGMATIKA-3», «PDF»}

Последний метод будет работать для расширений файлов, которые не являются три символа.

0

просто использовать как этот

String substr = param2.substring(param2.length() - 3); 
     if("pdf".equals(substr)) 
    { 
     // use what you want 
    } 
Смежные вопросы