2015-04-04 3 views
-1

Мне нужно знать, в чем проблема с этим кодом?длина = 0; index = 5

public String getLastDate(){ 
    SQLiteDatabase database = lecturesDB.getReadableDatabase(); 
    try { 
     String [] a = {DATE}; 
     Cursor cursor = database.query(LECTURES_TABLE, a, null, null, null, null, null); 
     int i = cursor.getColumnIndex(DATE); 
     cursor.moveToFirst(); 

     String ld = cursor.getString(i);//Thu, 26 Mar 2015 17:19:56 
     DateFormat format = new SimpleDateFormat("dd MMM yyyy hh:mm:ss "); 
     Date date = format.parse(ld.substring(5)); 

     while (cursor.moveToNext()){ 
      String c = cursor.getString(i); 
      if (format.parse(c.substring(5)).getTime()>date.getTime()){ 
       date = format.parse(c.substring(5)); 
       ld = c; 
      } 
     } 
     return ld; 
    }catch (Exception e) { 
     Log.e("Mayiaz",e.getMessage());return ""; 
    }finally { 
     database.close(); 
    } 
} 

Его возвращают "" и исключение показать это сообщение:

"04-04 19:55:45.702 1478-1634/com.mine.rbt E/Mayiaz﹕ length=0; index=5" 

Почему код бросает исключение, и как это исправить?

+0

Вы пробовали отладить его? Какого рода «Исключение» вы поймали? Откуда это? –

+0

Благодарим вас за повтор, но проблема решена :) @ GáborBakos: * –

+0

Можете ли вы пролить свет на то, что было проблемой и решением, или это было слишком тривиально, чтобы, возможно, рассмотреть вопрос об удалении вопроса? : D –

ответ

0

(я предполагаю, что это происходит на ld.substring(5) линии, если он находится на c.substring(5) линии, заменить s/ld/c/g Просьба четко указать какой строки исключение происходит на.)

Вы не можете вызвать String.substring(i) для i больше длины строки. Вам нужно избегать вызова ld.substring(5), если ld короче 5 символов (в этом случае он пуст).

Например, вы можете использовать Math.min(5, ld.length()). Обратите внимание, однако, что это, вероятно, вызовет исключение, потому что строка не может быть проанализирована как дата на format.

+0

спасибо вам, что его работа прекрасна сейчас: * –

Смежные вопросы