2013-01-28 3 views
2

Я делал несколько экспериментов с функцией «replaceall» для изменения содержимого файла. Но мне интересно, можно ли заменить строку текстом, взятым из текстового поля.Заменить строку в файле содержимым в текстовом поле JAVA/ANDROID

Пример:

File: 

NAME: JOHN DOE 
GRADES:BLAH BLAH BLAH BLAH 

NAME: JOHN DOE 
GRADES2: BLAH BLAH BLAH 

NAME: JOHN DOE 
GRADES3:BLAH BLAH BLAH 

Тогда я хотел бы ввести в текстовое поле другого "NAME", чтобы replaceALL "Джона Доу" с, например: "Хоган"

EXPECTED RESULT: 

Файл:

NAME: HULK HOGAN 
GRADES:BLAH BLAH BLAH BLAH 

NAME: HULK HOGAN 
GRADES2: BLAH BLAH BLAH 

NAME: HULK HOGAN 
GRADES3:BLAH BLAH BLAH 

Is это возможно ???

Заранее спасибо.

+2

Да, это полностью возможное. – Smit

ответ

0

Да.

Например (если у вас есть TextView с идентификатором textView)

TextView t = (TextView) findViewById (R.id.textView); 
String text = t.getText().toString(); 
String replaced = text.replaceAll (/*your implementation*/); 
t.setText (replaced); 

Такой же подход для EditText s

+0

Эй! Благодаря! этот трюк сделал. Я объединил его с «кнопкой», чтобы запустить «замену» и сохранить изменения в новый файл, но при нажатии «содержимое файла» копируется внутри текстового поля. Есть ли способ решить это? («Сохраняющая» часть работает должным образом) – user2012897

+0

Если ваш подход такой же, как и то, что я начертил, опустите 't.setText (replace);'. Если текст устанавливается автоматически при каждом обновлении этого файла, вы должны сохранить копию старого текста в отдельной строке «String». –

+0

Работал как очарование! Благодарю. – user2012897

0

Несомненно, просто возьмите старую строку и положите ее в новую.

TextView tv; //Get the pointer to the textbox, included for definition 
String text=tv.getText(); 
tv.setText(text.replaceAll(....)); 
+0

Большое спасибо за ваш ответ. Это очень помогло мне. – user2012897

0

Вы можете сделать это с чем-то вроде этого:

String myName = myEditText.getText().toString(); 
myText.replaceAll("John Doe", myName); 
Смежные вопросы