Determines if the character represents any kind of space. - Java java.lang

Java examples for java.lang:char

Description

Determines if the character represents any kind of space.

Demo Code

/*//from   w  w  w . j  a  va  2 s . c  om
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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 com.java2s;

public class Main {
    /** normal space */
    public static final char SPACE = '\u0020';
    /** non-breaking space */
    public static final char NBSPACE = '\u00A0';
    /** word joiner */
    public static final char WORD_JOINER = '\u2060';
    /** zero-width no-break space (= byte order mark) */
    public static final char ZERO_WIDTH_NOBREAK_SPACE = '\uFEFF';

    /**
     * Determines if the character represents any kind of space.
     * 
     * @param c
     *            character to check
     * @return True if the character represents any kind of space
     */
    public static boolean isAnySpace(final int c) {
        return isBreakableSpace(c) || isNonBreakableSpace(c);
    }

    /**
     * Helper method to determine if the character is a space with normal
     * behavior. Normal behavior means that it's not non-breaking.
     * 
     * @param c
     *            character to inspect
     * @return True if the character is a normal space
     */
    public static boolean isBreakableSpace(final int c) {
        return c == SPACE || isFixedWidthSpace(c);
    }

    /**
     * Method to determine if the character is a nonbreaking space.
     * 
     * @param c
     *            character to check
     * @return True if the character is a nbsp
     */
    public static boolean isNonBreakableSpace(final int c) {
        return c == NBSPACE // no-break space
                || c == '\u202F' // narrow no-break space
                || c == '\u3000' // ideographic space
                || c == WORD_JOINER // word joiner
                || c == ZERO_WIDTH_NOBREAK_SPACE; // zero width no-break space
    }

    /**
     * Method to determine if the character is a (breakable) fixed-width space.
     * 
     * @param c
     *            the character to check
     * @return true if the character has a fixed-width
     */
    public static boolean isFixedWidthSpace(final int c) {
        return c >= '\u2000' && c <= '\u200B' || c == '\u3000';
        // c == '\u2000' // en quad
        // c == '\u2001' // em quad
        // c == '\u2002' // en space
        // c == '\u2003' // em space
        // c == '\u2004' // three-per-em space
        // c == '\u2005' // four-per-em space
        // c == '\u2006' // six-per-em space
        // c == '\u2007' // figure space
        // c == '\u2008' // punctuation space
        // c == '\u2009' // thin space
        // c == '\u200A' // hair space
        // c == '\u200B' // zero width space
        // c == '\u3000' // ideographic space
    }
}

Related Tutorials