2016-02-08 2 views
0

У меня есть приложение, которое я имеет TextToSpeech особенности читать много слов в тексте редактирования, вот мой код:Удаление части строки в андроиде

package com.example.texttoSPCH; 
import android.app.Activity; 
import android.os.Bundle; 
import android.speech.tts.TextToSpeech; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

import java.util.Locale; 

public class MyActivity extends Activity implements TextToSpeech.OnInitListener { 
    TextToSpeech tts; 
    EditText edt; 
    Button btn; 
    @Override 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
     init(); 
    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 

     public void onClick(View v) { 

      SpeakOut(); 
     } 

    }); 
} 

private void init() { 
    edt= (EditText) findViewById(R.id.edt); 
    btn= (Button) findViewById(R.id.btn); 
    tts=new TextToSpeech(this,this); 
} 

@Override 
public void onInit(int status) { 
    if (status==TextToSpeech.SUCCESS) { 
     tts.setLanguage(Locale.US); 
    } 
    if (status==TextToSpeech.LANG_MISSING_DATA){ 
     Toast.makeText(getApplicationContext(),"Text To Speech is not supported",Toast.LENGTH_LONG).show(); 
    } 
} 

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    tts.shutdown(); 
} 

private void SpeakOut() { 
String text=edt.getText().toString(); 
    if (null==text||"".equals(text)){ 
     text="Please give some input"; 
    } 
    tts.speak(text,TextToSpeech.QUEUE_FLUSH,null); 
} 
} 

У меня есть некоторые слова, которые они выглядят как это: способность (n.), или эта: dizzy (adj.), но я не хочу, чтобы TTS читал вид этого слова. Есть ли способ сделать это? как:

if(text.contains("(n.)"){ 
    String newtext = text-"(n.)" 
} 

, а затем рассказать TTS читать newtext?

ответ

1
String stringToRemove = "(n.)"; 
if(text.contains(stringToRemove){ 
    String newtext = text.replaceAll(stringToRemove, ""); 
} 

Надеюсь, он сработает.

+0

Whoa! Это сработало! Большое спасибо. –

+0

Но что делать, если есть другие вещи для удаления? Как (прил.) Или (exp.) ...? –

+0

Строка stringToRemove = "(прил.)"; // можно заменить любой текст здесь, чтобы удалить если (text.contains (stringToRemove) { Строка newtext = text.replaceAll (stringToRemove, "");} –

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