public class

StringUtil

extends java.lang.Object

 java.lang.Object

↳androidx.room.util.StringUtil

Gradle dependencies

compile group: 'androidx.room', name: 'room-runtime', version: '2.5.0-alpha01'

  • groupId: androidx.room
  • artifactId: room-runtime
  • version: 2.5.0-alpha01

Artifact androidx.room:room-runtime:2.5.0-alpha01 it located at Google repository (https://maven.google.com/)

Androidx artifact mapping:

androidx.room:room-runtime android.arch.persistence.room:runtime

Androidx class mapping:

androidx.room.util.StringUtil android.arch.persistence.room.util.StringUtil

Summary

Fields
public static final java.lang.StringEMPTY_STRING_ARRAY

Methods
public static voidappendPlaceholders(java.lang.StringBuilder builder, int count)

Adds bind variable placeholders (?) to the given string.

public static java.lang.StringjoinIntoString(java.util.List<java.lang.Integer> input)

Joins the given list of integers into a comma separated list.

public static java.lang.StringBuildernewStringBuilder()

Returns a new StringBuilder to be used while producing SQL queries.

public static java.util.List<java.lang.Integer>splitToIntList(java.lang.String input)

Splits a comma separated list of integers to integer list.

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Fields

public static final java.lang.String EMPTY_STRING_ARRAY

Methods

public static java.lang.StringBuilder newStringBuilder()

Returns a new StringBuilder to be used while producing SQL queries.

Returns:

A new or recycled StringBuilder

public static void appendPlaceholders(java.lang.StringBuilder builder, int count)

Adds bind variable placeholders (?) to the given string. Each placeholder is separated by a comma.

Parameters:

builder: The StringBuilder for the query
count: Number of placeholders

public static java.util.List<java.lang.Integer> splitToIntList(java.lang.String input)

Splits a comma separated list of integers to integer list.

If an input is malformed, it is omitted from the result.

Parameters:

input: Comma separated list of integers.

Returns:

A List containing the integers or null if the input is null.

public static java.lang.String joinIntoString(java.util.List<java.lang.Integer> input)

Joins the given list of integers into a comma separated list.

Parameters:

input: The list of integers.

Returns:

Comma separated string composed of integers in the list. If the list is null, return value is null.

Source

/*
 * Copyright (C) 2016 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.room.util;

import android.util.Log;

import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;

import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

/**
 * @hide
 *
 * String utilities for Room
 */
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP_PREFIX)
public class StringUtil {

    @SuppressWarnings("unused")
    public static final String[] EMPTY_STRING_ARRAY = new String[0];
    /**
     * Returns a new StringBuilder to be used while producing SQL queries.
     *
     * @return A new or recycled StringBuilder
     */
    public static StringBuilder newStringBuilder() {
        // TODO pool:
        return new StringBuilder();
    }

    /**
     * Adds bind variable placeholders (?) to the given string. Each placeholder is separated
     * by a comma.
     *
     * @param builder The StringBuilder for the query
     * @param count Number of placeholders
     */
    public static void appendPlaceholders(StringBuilder builder, int count) {
        for (int i = 0; i < count; i++) {
            builder.append("?");
            if (i < count - 1) {
                builder.append(",");
            }
        }
    }
    /**
     * Splits a comma separated list of integers to integer list.
     * <p>
     * If an input is malformed, it is omitted from the result.
     *
     * @param input Comma separated list of integers.
     * @return A List containing the integers or null if the input is null.
     */
    @Nullable
    public static List<Integer> splitToIntList(@Nullable String input) {
        if (input == null) {
            return null;
        }
        List<Integer> result = new ArrayList<>();
        StringTokenizer tokenizer = new StringTokenizer(input, ",");
        while (tokenizer.hasMoreElements()) {
            final String item = tokenizer.nextToken();
            try {
                result.add(Integer.parseInt(item));
            } catch (NumberFormatException ex) {
                Log.e("ROOM", "Malformed integer list", ex);
            }
        }
        return result;
    }

    /**
     * Joins the given list of integers into a comma separated list.
     *
     * @param input The list of integers.
     * @return Comma separated string composed of integers in the list. If the list is null, return
     * value is null.
     */
    @Nullable
    public static String joinIntoString(@Nullable List<Integer> input) {
        if (input == null) {
            return null;
        }

        final int size = input.size();
        if (size == 0) {
            return "";
        }
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < size; i++) {
            sb.append(Integer.toString(input.get(i)));
            if (i < size - 1) {
                sb.append(",");
            }
        }
        return sb.toString();
    }

    private StringUtil() {
    }
}