说起C语言,很多程序猿一定熟悉的不能再熟悉了,C语言作为普遍度最高的编程语言,其实并不是很难理解,只要去学就不会觉得那一大堆堆的代码像天文数字了。在C语言中,字符串是非常常见的,很多小伙伴也知道该怎么输入和输出,那么如果是空字符串呢?该如何表示呢?
空字符的ASCii编码为0,表示为'' 或者short型的0值,
最常见的用途是识别字符串的结尾,只要读取字符串,读到这个字符后会自动结束字符串的识别。这也是为什么很多编程教程中提到的,为什么要在尾部追加''字符作为结束符。如果不追加这个字符,极有可能在打印字符串的时候,出现很多乱码。
1 在c语言中空字符用''表示
2 ''对应的整型值是0,所以给一个字符变量赋值为空字符时,以下两种都是可以的
以上就是小编今天的分享了,大家是不是已经知道空字符串该用什么来表示了呢?
Java 字符串拼接,去首尾,判空,类型转换
去掉首尾空白字符
使用trim()方法可以移除字符串首尾空白字符。
空白字符包括空格,\t,\r,\n:
String s = "\t \u3000 hello \t \n \r";System.out.println(s.trim());return " hello"123
注意:trim()并没有改变字符串的内容,而是返回了一个新字符串。而且trim 不会删除中文字符的空格。要想删掉中文的空格,需要使用strip()
String s = "\t \u3000 hello \t \n \r";System.out.println(s.strip());return "hello"123
判空
String还提供了isEmpty()和isBlank()来判断字符串是否为空和空白字符串:
isEmpty 根据字符串是否为空
isBlank 根据字符串是否为空白字符串 包括 \n \t \r
类型转换
任意类型转换为字符串:
要把任意基本类型或引用类型转换为字符串,可以使用静态方法valueOf()。这是一个重载方法,编译器会根据参数自动选择合适的方法.
String.valueOf(123); // "123"String.valueOf(45.67); // "45.67"String.valueOf(true); // "true"String.valueOf(new Object()); // 类似java.lang.Object@636be97c1234
字符串转换其他类型:
视情况而论
int n1 = Integer.parseInt("123"); // 123int n2 = Integer.parseInt("ff", 16); // 按十六进制转换,255boolean b1 = Boolean.parseBoolean("true"); // trueboolean b2 = Boolean.parseBoolean("FALSE"); // false//String和char[]类型可以互相转换char[] cs = "Hello".toCharArray(); // String -> char[]String s = new String(cs); // char[] -> String123456789
从String的不变性设计可以看出,如果传入的对象有可能改变,我们需要复制而不是直接引用
缓冲字符串StringBuilder:
如果直接拼接字符串,是可以的,但是,在循环中,每次循环都会创建新的字符串对象,然后扔掉旧的字符串。这样,绝大部分字符串都是临时对象,不但浪费内存,还会影响GC效率。
为了能高效拼接字符串,Java标准库提供了StringBuilder,它是一个可变对象,可以预分配缓冲区,这样,往StringBuilder中新增字符时,不会创建新的临时对象:
使用 stringBuilder 在拼接字符串的同时可以减少内存的占用
StringBuilder sb = new StringBuilder();for (int i = 0; i < 1000; i ) { sb.append(i); sb.append("- "); if ( i % 10 ==0){ sb.append("\n"); } }System.out.println(sb.toString());123456789
总结字符串拼接的三种方式:
// 拼接字符串 System.out.println("-------------------------------"); String[] names = {"Bob", "Alice", "Kim"}; StringBuilder stringName = new StringBuilder(); stringName.insert(0, "Hello "); for (String s: names){ stringName.append(s).append(", "); } stringName.delete(stringName.length() - 2, stringName.length()); stringName.insert(stringName.length(), "!"); System.out.println(stringName.toString()); System.out.println("-------------------------------"); return --> Hello Bob, Alice, Kim!123456789101112131415
使用这种方式,就不能对操作限制符了, 但其他操作还是很友好的。
如果我们还是按照之前的例子, 重新写一个 StringJoiner
// 使用StringJoiner String[] names = {"Bob", "Alice", "Kim"}; StringJoiner sb = new StringJoiner(", ", "Hello ", "!"); for (String s: names){ sb.add(s); } System.out.println(sb.toString());1234567
注意一点, StringJoiner() 可以加分隔符, 开头字符串, 和尾部字符串。
转发 关注 私信我 回复 头条666 领取资料