java 带横杠或下划线_的数据库字段变驼峰,比如ID_CARD_INFO_TITLE转换成idCardInfoTitle

有个需求需要将数据库字段转换成驼峰字段,在网上找了一会这方面的工具,

写代码嘛,有现成的最好,但发现都写的乱七八糟,

有的各种引用工具类,有的是正则匹配来匹配去最后给出的结果还不对。

于是自己写了一个,亲测没问题,代码如下,请自取,完全没有任何外部引用,也没有正则之类容易出错的语法:

	/**
	 * 根据传入的带下划线的字符串转化为驼峰格式
	 *
	 * "NATION -> nation
	 * "HISTORY_OVERDUE -> historyOverdue
	 * "ID_CARD_INFO_TITLE -> idCardInfoTitle
	 * "ID_1_INFO_TITLE -> id1InfoTitle
	 * "A_123_INFO_TITLE -> a123InfoTitle
	 * "A_1_INFO_D_TITLE_B -> a1InfoDTitleB
	 * "A_1_INFO_TITLE_B_C -> a1InfoTitleBC
	 * 
	 */
	public static String underlineToHump(String str) {

		String[] array = str.toUpperCase().split("_");
		StringBuilder result = new StringBuilder(array[0].toLowerCase());
		if (array.length <= 1) {
			return result.toString();
		}
		for (int i = 1; i < array.length; i++) {
			result.append(array[i], 0, 1);
			if (array[i].length() <= 1) {
				continue;
			}
			result.append(array[i].substring(1).toLowerCase());
		}
		return result.toString();
	}

	public static void main(String[] args) {
		System.out.println(underlineToHump("NATION"));
		System.out.println(underlineToHump("HISTORY_OVERDUE"));
		System.out.println(underlineToHump("ID_CARD_INFO_TITLE"));
		System.out.println(underlineToHump("ID_1_INFO_TITLE"));
		System.out.println(underlineToHump("A_123_INFO_TITLE"));
		System.out.println(underlineToHump("A_1_INFO_D_TITLE_B"));
		System.out.println(underlineToHump("A_1_INFO_TITLE_B_C"));
	}

测试结果如下:

收工 

猜你喜欢

转载自blog.csdn.net/u013282737/article/details/128034567