String 笔记

本文详细介绍了Java中字符串(String)的特点与用法,包括字符串的不可变性、字符串缓冲区(StringBuffer)和字符串构建器(StringBuilder)的区别,以及常用的字符串操作方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、字符串都是对象。
2、字符串是常量。它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为String 对象是不可变的,所以可以共享。
例如:String str = "abc";等效于:
char data[] = {'a', 'b', 'c'}; String str = new String(data);
3String s1 ="abc";
String s2 =newString("abc");
System.out.println(s1 ==s2);//false
//因为String复写了equals方法
//建立字符串自己的判断相同的方法
System.out.println(s1.equals(s2));//true
4String方法查找练习。
// 1、字符串是否以指定的字符串开头。结尾同理。
String s1="asafgfhg";
System.out.println(s1.startsWith("asd"));
System.out.println(s1.endsWith("fhg"));
// 2、字符串中是否包含另一个字符串。
String s2="123456";
System.out.println(s2.contains("12354"));
// 3、字符串中另一个字符串出现的位置。
String s3="asdfafd";
System.out.println(s3.indexOf("af"));
// 4、字符串中指定的字符串替代另一个字符串。
String s4="adfhsdhfghhhj";
s4=s4.replace("h","d");
System.out.println(s4);
// 5、字符串如何比较大小
String str1 ="asdff";
String str2 ="asdfF";
System.out.println(str1.compareTo(str2));
System.out.println(str1.compareToIgnoreCase(str2));
// 6、将字符串转变为字符数组。或字节数组。
String s6="1323434";
/*char[]cha=s6.toCharArray();
for(inti=0;i<cha.length;i++){
System.out.println(cha);
}*/
byte[] b=s6.getBytes();
for(inti=0;i<b.length;i++){
System.out.println(b);
}
// 7、将字母字符串转为大写的字母字符串。
String s7="asdfg";
System.out.println(s7.toUpperCase());
// 8、将字符串按照指定的方式分解成多个字符串,“lisiwangwuzhaoliu获取三个姓名
String s8="lisi,wangwu,zhaoliu";
String [] names=s8.split(",");
for(inti=0;i<names.length;i++){
System.out.println(names);
}
5StringBufferStringBuilder的区别
StringBuilder:非同步的。单线程访问效率高。
StringBuffer:同步的。多线程访问安全。

版权声明:本文为博主原创文章,未经博主允许不得转载。

### 关于C++ String类的学习笔记 #### 字符串长度获取 `std::string` 提供了多种方法来获取字符串的长度。其中 `length()` 和 `size()` 函数可以返回字符串中的字符数量[^1]。 ```cpp #include <iostream> #include <string> int main() { std::string str = "example"; std::cout << "Length of the string is: " << str.length() << std::endl; } ``` #### 获取C风格字符串 为了与其他接受以null结尾的字符数组作为参数的老函数兼容,`std::string` 类提供了 `c_str()` 方法用于转换成C风格字符串。 ```cpp const char* cstr = str.c_str(); ``` #### 字符串拼接操作 可以通过重载的加号运算符或者成员函数 `append()` 来实现两个字符串之间的连接。 ```cpp // 使用 + 运算符 std::string result = str + "_appended"; // 或者使用 append 成员函数 result.append("_more"); ``` #### 插入与删除子串 对于更复杂的编辑需求,比如在指定位置插入新内容或是移除部分现有数据,则可分别调用 `insert()` 及 `erase()` 方法完成相应功能。 ```cpp // 在索引处插入其他字符串 str.insert(7, "modified"); // 删除从给定起始点到结束范围内的所有元素 str.erase(8, 5); ``` #### 查找子串的位置 当需要定位某个特定模式首次出现的地方时,应该考虑利用 `find()` 函数;如果要检测是否存在空白字符或数字字符,那么有专门针对这些情况设计好的辅助工具如 `isspace()` 和 `isdigit()` 宏定义可供选用。 ```cpp if (str.find("sub") != std::string::npos) { // 找到了 "sub" } bool has_space = isspace(str[0]); bool contains_digit = any_of(str.begin(), str.end(), ::isdigit); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值