2015-11-26 2 views
0

Мне было интересно, как я мог программно редактировать строки в android. Я показываю строки с моего устройства на свой сайт, и апострофы разрушают вывод PHP. поэтому, чтобы исправить это, мне нужно было добавить разрывы символов, т. е. обратную косую черту '\'.Android edit/insert in string

Например, если у меня есть эта строка: я люблю filiberto!
Мне нужен андроид, чтобы отредактировать его: я люблю filiberto!

Однако каждая строка будет отличаться, а также будут другие символы, от которых я должен бежать. Как я могу это сделать?

Мне было интересно, как я могу программно редактировать строки в android. Я показываю строки с моего устройства на свой сайт, и апострофы разрушают вывод PHP. поэтому, чтобы исправить это, мне нужно было добавить разрывы символов, т. е. обратную косую черту '\'.

Это то, что я до сих пор, благодаря ANJ для базового кода ...:

if(title.contains("'")) { 
    int i; 
    int len = title.length(); 
    char[] temp = new char[len + 1]; //plus one because gotta add new 
    int k = title.indexOf("'"); //location of apostrophe 
    for (i = 0; i < k; i++) { //all the letters before the apostrophe 
     temp[i] = title.charAt(i); //assign letters to array based on index 
    } 
    temp[k] = 'L'; // the L is for testing purposes 
    for (i = k+1; i == len; i++) { //all the letters after apostrophe, to end 
     temp[i] = title.charAt(i); //finish the original string, same array 
    } 
    title = temp.toString(); //output array to string (?) 
    Log.d("this is", title); //outputs gibberish 
} 

, который выводит случайные символы .. даже не похожие на моей исходной строки. Кто-нибудь знает, что может быть причиной этого? Например, строка «Lol'ok» превращается в >> «% 5BC% 4042ed0380»

ответ

0

Я предполагаю, что вы где-то храните строку. Допустим, что строка: str. Вы можете использовать временный массив, чтобы добавить '/'. Для одной строки:

int len = str.length(); 
    char [] temp = new char[len+1]; //Temporary Array 
    int k = str.indexOf("'"), i;  //Finding index of "'" 
    for(i=0; i<k-1; i++) 
    { 
    temp[i] = str.charAt(i);  //Copying the string before ' 
    } 
    temp[k] = '/';     //Placing "/" before ' 
    for(i=k; j<len; j++) 
    { 
     temp[i+1] = str.charAt(i);  //Copying rest of the string 
    } 
    String newstr = temp.toString(); //Converting array to string 

Вы можете использовать то же самое для нескольких строк. Просто сделайте это как функцию и вызовите ее, когда захотите.

+0

В настоящее время я пытаюсь реализовать это, однако у меня есть проблема. Я предполагаю, что есть быстрое решение; Я просто этого не знаю. Мне нужно, чтобы это была обратная сторона, \, а не косая черта. Но обратная косая черта предотвращает котировку. Как я могу это исправить? Кроме того, запуск этого выводит мой текст на случайный, например, например:% 5BC% 4042e5a9b8 ... Который я не получаю. Это потому, что это происходит из строки, в массив, обратно в строку? Нужно ли мне переписывать перечисления на новую строку или делать это с Android? Кроме того, j - просто новое целое число, или оно должно быть заменено на I, чтобы забрать, где оно остановилось? – Bahamit

+0

Жаль j была ошибкой. Это должно быть только я. – ANJ

+0

Для обратной косой черты посмотрите на это: http://stackoverflow.com/questions/6257316/illegal-escape-character. Однако я не могу получить ваш третий вопрос. Вы говорите, что% 5BC% 4042e5a9b8 является вашей исходной строкой, и вы не можете ее преобразовать? – ANJ

0

В API-интерфейсе String имеется ряд вызовов API, которые могут помочь, например String.replaceAll. Но ...

апострофа испортит Результат PHP

Затем закрепите PHP код, а не требует "очистить" ввод. Лучшим вариантом было бы выбрать хорошо поддерживаемый транспортный формат (скажем, JSON или XML) и позволить Json API на каждом конце обрабатывать escape-код.

+0

Я вообще не знаком с JSON, я использую MySQL PDO, и это была такая борьба, чтобы добраться до того, где я сейчас, я думаю, что просто будет проще очистить вход, стихи выхода – Bahamit

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

  • Нет связанных вопросов^_^