1 /* 2 * Copyright 2016-17, OpenCensus Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package io.opencensus.internal; 18 19 /** Internal utility methods for working with tag keys, tag values, and metric names. */ 20 public final class StringUtils { 21 22 /** 23 * Determines whether the {@code String} contains only printable characters. 24 * 25 * @param str the {@code String} to be validated. 26 * @return whether the {@code String} contains only printable characters. 27 */ isPrintableString(String str)28 public static boolean isPrintableString(String str) { 29 for (int i = 0; i < str.length(); i++) { 30 if (!isPrintableChar(str.charAt(i))) { 31 return false; 32 } 33 } 34 return true; 35 } 36 isPrintableChar(char ch)37 private static boolean isPrintableChar(char ch) { 38 return ch >= ' ' && ch <= '~'; 39 } 40 StringUtils()41 private StringUtils() {} 42 } 43