Sunday, February 23, 2020

android kotlin - How to partition a string

MainActivity.kt

package com.example.jetpack

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*


class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val string = "This is A SAMple striNg."

        textView.text = string

        /*
            documentation source: kotlinlang.org
                Splits the original char sequence into pair of char sequences,
                where first char sequence contains characters for which
                predicate yielded true, while second char sequence
                contains characters for which predicate yielded false.
        */
        val result:Pair<String,String> = string.partition {
            it.isUpperCase()
        }

        textView.append("\n\n")
        textView.append("Uppercase characters....\n")
        textView.append(result.first)

        textView.append("\n\n")
        textView.append("Exclude uppercase characters....\n")
        textView.append(result.second)
    }
}
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/textView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="8dp"
        android:textAppearance="@style/TextAppearance.AppCompat.Large"
        android:textColor="#2A52BE"
        android:textStyle="normal"
        android:textSize="30sp"
        android:fontFamily="sans-serif-condensed"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
More android examples