有以下代码: String s1 = "1234567890"; String s2 = s1.substring(2,8); System.out.println(s2); 运行结果是( )
时间: 2024-04-21 07:29:59 浏览: 21
运行结果是 "345678"。在这段代码中,我们首先创建了一个名为s1的字符串,它包含数字0到9。然后,我们使用substring方法从s1中获取一个子字符串,该子字符串的起始位置是2,结束位置是8。因为Java中的字符串索引是从0开始的,所以该子字符串实际上包含了s1中的第3个字符(数字3)到第9个字符(数字8)。最后,我们将该子字符串打印到控制台上,输出结果为"345678"。
相关问题
public class d2 { public static void main(String[] args) { String s1=new String("pb_java_00p_T5"); String s2=s1.substring(s1.lastIndexOf(s1.lastIndexOf("_")); System.out.println("s2="+s2); } }
这段 Java 代码的运行结果会抛出 StringIndexOutOfBoundsException 异常。原因是在 s1.lastIndexOf("_") 返回的索引值为 9 时,调用 s1.lastIndexOf(s1.lastIndexOf("_")) 会得到 s1.charAt(9) 的 ASCII 码值 48('0'的 ASCII 码),而这个值大于了字符串 s1 的长度,因此导致数组越界异常。正确的代码应该是:
```
public class d2 {
public static void main(String[] args) {
String s1 = new String("pb_java_00p_T5");
String s2 = s1.substring(s1.lastIndexOf("_") + 1); // 修改此处
System.out.println("s2 = " + s2);
}
}
```
这样就可以得到正确的输出结果:s2 = T5。
package five; public class five { public static void main( String [] args ) { String s1 = " 1234567890QWERTYUIOPqwertyuiop~!@#~$%^^&~我们永远热爱和平 "; System.out.println("s1 = " + s1); int s1_len = s1.length(); System.out.println( s1_len ); String s2 = s1.substring( 10, 20 ); System.out.println( s2 ); char c = s1.charAt( 10 ); System.out.println( c ); String s3 = s1.concat("世界!"); System.out.println( s3 ); String s4 = s1; boolean b1 = s3 == s4; System.out.println( b1 ); int index = s1.indexOf('3'); System.out.println( index ); s1 = s1.trim(); s1.toUpperCase(); System.out.println( s1 ); char cc[] = s1.toCharArray(); System.out.println( java.util.Arrays.toString(cc) ); } }
这是一个Java类,名为five。它包含一个main方法,用于测试一些字符串操作。在main方法中,定义了一个字符串s1,然后对其进行了多种操作:
1. 使用length()方法获取字符串长度,并将其输出。
2. 使用substring()方法从s1中获取子字符串,然后将其输出。
3. 使用charAt()方法获取s1中指定位置的字符,并将其输出。
4. 使用concat()方法将字符串s1和"世界!"拼接起来,并将拼接后的结果输出。
5. 将s1赋值给s4,然后使用"=="运算符比较s3和s4是否相等,并将比较结果输出。
6. 使用indexOf()方法查找字符'3'在s1中第一次出现的位置,并将其输出。
7. 使用trim()方法去除s1首尾的空格,然后使用toUpperCase()方法将其转换为大写字母,并将结果输出。
8. 使用toCharArray()方法将s1转换为字符数组,然后使用Arrays.toString()方法将字符数组转换为字符串,并将其输出。
需要注意的是,虽然使用了trim()和toUpperCase()方法,但是s1本身并没有被修改,因为在Java中String是不可变的。