Extract a line from an EditText

2019-02-17 12:42发布

问题:

How can we extract a line from a multiLine EditText ?

I tried this way, but I know that is not a good practice :

String street1 = "";
String street2 = "";
EditText streetEt = ((EditText) findViewById(R.id.street));
ExtractedText extractedText = new ExtractedText();
ExtractedTextRequest req = new ExtractedTextRequest();
int endOfLineOffset = 0;

req.hintMaxLines = 1;
streetEt.extractText(req, extractedText);
endOfLineOffset = extractedText.partialEndOffset;
street1 = extractedText.toString();
...

is there an easier way to do this like looking for \n in the string ?

回答1:

Try using String.split(). Code example:

String multiLines = streetEt.getText().toString();
String[] streets;
String delimiter = "\n";

streets = multiLines.split(delimiter);

Now you have an array of streets.

Let's say, for example, your EditText reads "1st St.\nHighway Rd.\nUniversity Ave." (or is those 3 streets separated by line breaks, instead of you actually seeing \n). Following the code example I provided you,

  • multiLines becomes "1st St.\nHighway Rd.\nUniversity Ave."
  • streets = multiLines.split(delimiter); fills the array streets with the street names, i.e.

    • streets[0] = "1st St."
    • streets[1] = "Highway Rd."
    • streets[2] = "University Ave."


回答2:

Try this:

String text = streetEt.getText();

String firstLine = text.substring(0,text.indexOf("\n"));


回答3:

Try this,

String text=editText1.getText().toString().replace("\n", " ").trim();