String str = "abc"; 只打印b
时间: 2024-02-12 14:10:51 浏览: 100
可以使用字符串的 charAt() 方法获取指定位置的字符,然后将其打印出来。在 Java 中,字符串的索引从 0 开始。所以要打印字符串中的第二个字符,需要获取索引为 1 的字符。可以按照以下方式实现:
```
String str = "abc";
System.out.println(str.charAt(1));
```
输出结果为:
```
b
```
相关问题
java String str="abc" 创建了几个对象 ;java String s = a+b+c+d+e 创建了几个对象
第一个问题:在Java中,创建了2个对象。一个是字符串常量池中的"abc",另一个是在堆中的String对象,它引用了字符串常量池中的"abc"。
第二个问题:在Java中,创建了5个对象。在编译时,"a"、"b"、"c"、"d"和"e"都被当作字符串常量处理,会被放入字符串常量池中。然后,在运行时,会创建4个String对象。首先,"a"和"b"会被拼接成一个新的String对象,然后再将其与"c"拼接成另一个新的String对象,以此类推,直到拼接完成。因此,总共创建5个对象。
string str="abc"; char *p=str.data();
这段代码将一个字符串 "abc" 赋值给了一个名为 str 的 std::string 对象。然后,通过调用 std::string 类的成员函数 data(),它返回指向字符串 "abc" 的第一个字符的指针。由于 char *p 是一个指向字符的指针,因此将该指针初始化为 str.data() 是合法的。
需要注意的是,std::string 对象的生命周期比 char *p 更长。如果在 std::string 对象被销毁之后仍然使用指向其 data() 函数返回的指针,则会导致程序崩溃或未定义的行为。因此,在使用指向 std::string 对象中存储的字符串的指针时,必须确保 std::string 对象仍然有效。
阅读全文