Java String Snake Case toSnakeCase(String str)

Here you can find the source of toSnakeCase(String str)

Description

Transforms a string to underscore-delimited representation.

License

Open Source License

Declaration

public static String toSnakeCase(String str) 

Method Source Code

//package com.java2s;
/*// w w  w. ja v a 2s.  c  om
 * Syncany, www.syncany.org
 * Copyright (C) 2011-2015 Philipp C. Heckel <philipp.heckel@gmail.com> 
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

public class Main {
    /**
     * Transforms a string to underscore-delimited representation.
     * 
    * <p>Examples:
    * <ul>
    *  <li><tt>toUnderScoreDelimited("HelloWorld") -&gt; "hello_world"</tt></li>
    *  <li><tt>toUnderScoreDelimited("helloWorld") -&gt; "hello_world"</tt></li>
    * </ul>
     */
    public static String toSnakeCase(String str) {
        StringBuilder sb = new StringBuilder();

        for (char c : str.toCharArray()) {
            if (Character.isLetter(c) || Character.isDigit(c)) {
                if (Character.isUpperCase(c)) {
                    if (sb.length() > 0) {
                        sb.append("_");
                    }

                    sb.append(Character.toLowerCase(c));
                } else {
                    sb.append(c);
                }
            } else {
                sb.append("_");
            }
        }

        return sb.toString();
    }
}

Related

  1. toSnakeCase(String camelCase)
  2. toSnakeCase(String s)
  3. toSnakeCase(String src)
  4. toSnakeCase(String str)
  5. toSnakeCase(String str, boolean capitalize, Boolean upper)