Java String length()方法
时间:2020-02-23 14:34:32 来源:igfitidea点击:
Java String length()函数返回此对象表示的字符序列的长度。
Java字符串长度
有时我们必须在Java程序中获取字符串的长度,下面的代码片段向您展示了如何做到这一点。
String str = "theitroad";
System.out.println("String length is "+str.length());
上面的代码片段将产生如下输出:
String length is 10
假设我们有一个函数可以打印字符串长度,如下所示。
public static void printStringLength(String s){
System.out.println("input string length is "+s.length());
}
您能猜出上述功能有什么问题吗?好吧,如果有人通过将字符串值传递为" null"来调用此函数,则可能导致NullPointerException。
下面是避免NullPointerException的更好的实现。
public static void printStringLength(String s){
if(s == null) return;
System.out.println("input string length is "+s.length());
}
请注意,如果输入为null,我只是忽略并返回该调用,您可以记录它或者引发Exception或者根据您的要求执行任何其他操作。
Unicode表示形式的Java字符串长度
如果看一下Stringlength()方法的javadoc,它表示长度等于字符串中Unicode代码单元的数量。
这是什么意思?让我们看一个小的代码片段,以轻松理解该语句的含义。
String str1 = "\u00A9"; //copyright character
System.out.println("String length is "+str1.length());
当您在上面的程序中运行时,字符串长度将被打印为1。
在Java中,我们可以使用Unicode字符定义一个String,而上面的unicode用于版权字符。
因此,String的长度为1,如果您尝试打印它,它将显示为©。
这是最终的Java字符串长度程序。
package com.theitroad.string;
public class JavaStringLength {
public static void main(String[] args) {
String str = "theitroad";
System.out.println("String length is " + str.length());
String str1 = "\u00A9";
System.out.println("Unicode String length is " + str1.length());
System.out.println("Unicode string value = "+str1);
printStringLength(null);
}
public static void printStringLength(String s) {
if (s == null)
return; //do nothing
System.out.println("input string length is " + s.length());
}
}
Java String长度,不使用length()函数
这是一个非常有趣的面试问题,有很多替代和不推荐的方法来获取字符串的长度。
让我们看一下这些内容,它们很适合用于论证,但不要在生产环境中使用。
转换为字符数组并查找长度
public static int getStringLength(String s) {
int count = 0;
char [] ca = s.toCharArray();
for (char c : ca) {
count++;
}
return count;
}
字符数组的调用长度
public static int getStringLength(String s) {
return s.toCharArray().length;
}
巧妙地使用String lastIndexOf()函数
public static int getStringLength(String s) {
return s.lastIndexOf("");
}

