String s1="abc"+"def";String s2=new String(s1);s1与s2地址为何不同
时间: 2024-02-12 07:29:33 浏览: 107
这是因为在创建字符串s1时,Java编译器会将"abc"和"def"合并成一个新的字符串"abcdef"。而在创建字符串s2时,使用new关键字创建了一个新的字符串对象,并将s1中所引用的字符串对象的值复制到s2中。因此,s1和s2虽然包含相同的字符串内容,但它们引用的是不同的字符串对象,因此它们的地址不同。
相关问题
String s1 = "abc"; String s2 = "abc"; System.out.println(s1 == s2); String s3 = "abc" + s1 + "def"; String s4 = "abcabcdef"; System.out.println(s3 == s4); String s5 = s3.intern(); System.out.println(s4 == s5);
s1和s2的结果是true,因为它们都指向字符串常量池中的同一个字符串对象"abc"。
s3和s4的结果是false,因为s是通过字符串拼接生成的新的字符串对象,在堆内存中分配。而s4是直接指向字符串常量池中的对象"abcabcdef"。
s5的结果是true,因为调用s3.intern()方法后,会在字符串常量池中查找是否存在"abcabcdef"这个字符串对象。由于之前已经创建过,所以s5会指向它。所以s4和s5都指向了同一个字符串对象。
算法设计: 已知两个字符串s1="fg cdb cabcadr",s2="abc",运用链式存储结构存储这两个字符串,编写代码试求这两个串的长度,判断第二个字符串S2是否是第一个字符串s1的子串,并指出S2在S1中的位置。
算法设计可以采用多种方法来解决这个问题,这里我们使用Python的内置数据结构,如列表(List)来模拟链式存储结构,同时使用双指针策略来进行子串查找。首先我们需要计算两个字符串的长度,然后检查S2是否包含于S1。
```python
def chain_string_length(s1, s2):
# 计算字符串长度
len_s1 = len(s1)
len_s2 = len(s2)
return len_s1, len_s2
def is_substring_and_position(s1, s2):
# 使用双指针比较
i, j = 0, 0 # 初始化指针
while i < len(s1) and j < len(s2):
if s1[i] == s2[j]:
j += 1 # 如果匹配,则移动j指针
else:
i += 1 # 否则,移动i指针回到下一个字符
if j == len(s2): # 如果找到完整的s2,则找到了子串
return True, i - j # 返回True及子串起始位置
return False, -1 # 如果遍历完s1都没找到,则返回False和-1表示未找到
# 测试
s1 = "fg cdb cabcadr"
s2 = "abc"
lengths = chain_string_length(s1, s2)
is_sub, position = is_substring_and_position(s1, s2)
print(f"S1和S2的长度分别为{lengths[0]}和{lengths[1]}")
if is_sub:
print(f"S2 '{s2}' 是 S1 的子串,起始位置为 {position}")
else:
print(f"S2 '{s2}' 不是 S1 的子串")
```
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)