Java tutorial
//package com.java2s; /* * Copyright (C) 2012 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. */ public class Main { /** * Anything other than letter and numbers are considered delimiters. Remove start and end * delimiters since they are not relevant to search. * * @param query The query string to clean. * @return The cleaned query. Empty string if all characters are cleaned out. */ public static String cleanStartAndEndOfSearchQuery(String query) { int start = 0; while (start < query.length()) { int codePoint = query.codePointAt(start); if (Character.isLetterOrDigit(codePoint)) { break; } start += Character.charCount(codePoint); } if (start == query.length()) { // All characters are delimiters. return ""; } int end = query.length() - 1; while (end > -1) { if (Character.isLowSurrogate(query.charAt(end))) { // Assume valid i18n string. There should be a matching high surrogate before it. end--; } int codePoint = query.codePointAt(end); if (Character.isLetterOrDigit(codePoint)) { break; } end--; } // end is a letter or digit. return query.substring(start, end + 1); } }