一个java基础问题,望大家能帮忙解答;

来源:百度知道 编辑:UC知道 时间:2024/09/19 17:23:39
public class Test2 {
public static void main(String[] args) {
int x = 1;
String s = "中";

s = s.substring(x);
System.out.println(s);
}
}

可以打印出 s 但打印结果为空
把 x 改为2,打印出错;
问题:是不是在String字符串末尾默认的都有一个空字符?

其实并非有一个空字符,而是你把字符串的每个字符都截走了,那么剩下的是一个空字符串而不是空字符.

以下可以看出,abc有效3位都被你截走了,剩下的就是空字符串了.
如果超出有效位,就好比你那里的2,那么肯定就会出错了

---假如是空字符----
String s = "abc";
System.out.print(s.substring(3).replace('\0', 's'));
System.out.print("dd");
---截取有效位后剩下一个空字符串---
String s = "abc";
System.out.print(s.substring(3).replaceAll("", "s"));
System.out.print("dd");

subString的用法:
1.str=str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str;

2.str=str.substring(int beginIndex,int endIndex);截取str中从beginIndex开始至endIndex结束时的字符串,并将其赋值给str
中文用阿斯科码表示,具体的中字应该是多少不知道,我感觉应该是中的阿斯科码不能减去2

public String substring(int beginIndex)
返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。

例如:

"unhappy".substring(2) returns "happy"
"Harbison".substring(3) returns "bison"
&qu