Home > Software engineering >  Getting the string from the server side and separating the code fragment from the string in Kotlin
Getting the string from the server side and separating the code fragment from the string in Kotlin

Time:09-14

I made an Android application where the users ask questions, but they may use programming codes in their questions. How can I separate the programming codes from the normal texts in Kotlin? If you can explain, I want to change the background of the codes. Like this enter image description here

CodePudding user response:

just use something just like stackoverflow i.e. put code between "```" and you can easily parse it from string.

More info: to parse string you can use Regex

here's some sample code that detects "```" and changes inner text to red:

...
onCreate(){
textView.setText(formatString("alo ```alo```"));
}
...
SpannableStringBuilder formatString(String message) {
        Pattern p = Pattern.compile("(```)(.*?)(```)");// detects the pattern ```*``` in the string
        Matcher matcher = p.matcher(message);

        SpannableStringBuilder spannable = new SpannableStringBuilder(message);
        //for changing color of text
        while (matcher.find()) {
            ForegroundColorSpan span = new ForegroundColorSpan(Color.RED);
            spannable.setSpan(span, matcher.start(), matcher.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

            spannable.replace(spannable.getSpanStart(span), spannable.getSpanStart(span)   3, "");
            spannable.replace(spannable.getSpanEnd(span) - 3, spannable.getSpanEnd(span), ""); //to remove ``` from string

        }
        return spannable;
    }
  • Related