一 Java中首字母大写的方法
Java string,需要进行首字母大写改写,网上大家的思路基本一致,就是将首字母截取,转化成大写然后再串上后面的,类似如下代码
//首字母大写
public static String captureName(String name) {
name = name.substring(0, 1).toUpperCase() + name.substring(1);
return name;
}
将字符串name 转化为首字母大写。但是这种效率并不高,我之前看过一个牛人的写的方法核心代码,是这样的
//首字母大写
public static String captureName(String name) {
char[] cs=name.toCharArray();
cs[0]-=32;
return String.valueOf(cs);
}
心里是由衷的佩服,即进行字母的ascii编码前移,下面是这段程序的验证代码:
public class Test01 {
public static void main(String args[]) {
System.out.println("打印");
String UpFirstString = "abcdefghijklmn";
System.out.println(captureNameFunction(UpFirstString));
System.out.println(captureNameChar(UpFirstString));
}
public static String captureNameFunction(String name) {
name = name.substring(0, 1).toUpperCase() + name.substring(1);
return name;
}
public static String captureNameChar(String name) {
char[] cs=name.toCharArray();
// 先将字符串转化为char类型的数组,然后通过字母的ascii码进行前移,即A + 32 = a.
cs[0]-=32;
return String.valueOf(cs);
}
}
在运行过程中,也是有明显的区别,前者编译耗时大约2秒钟,后者大约1妙钟
二 JavaScript中首字母大写的方法
同样的,我们能够使用substring进行首字母的大写,代码如下面所示:
const UpFirstString = 'abcdefghijklmn';
captureNameFunction = (string) => {
return string.substring(0,1).toUpperCase() + string.substring(1);
};
console.log(captureNameFunction(UpFirstString));
当然,我们还有用于直接使用的插件,如下面代码.
const _string = require('lodash/string');
const UpFirstString = 'abcdefghijklmn';
console.log(_string.upperFirst(UpFirstString));
显示结果如下面所示:
Abcdefghijklmn
在上面的方法中,使用了lodash插件,在lodash中有很多js中需要使用的方法,下面就是其官网说明:
可能有些网友会说,那能不能使用字符进行转换呢??结果是肯定的,如下面代码:
const _lang = require('lodash/lang');// 获取lodash中的lang对象
const UpFirstString = 'abcdefghijklmn';
console.log(_lang.toArray(UpFirstString));// 将字符串转换为单个字符的数组并进行输出
/*
* fromCharCode:将ascii码转化为字符串
* charCodeAt: 将单个char转化为ascii码
* */
console.log(_lang.toArray(UpFirstString)[0].charCodeAt());
console.log(String.fromCharCode(_lang.toArray(UpFirstString)[0].charCodeAt() - 32));
console.log(String.fromCharCode(UpFirstString.charCodeAt() - 32));
但是,上面这种转换有点麻烦.....下面是显示结果:
[ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n' ]
97
A
A
----