大家进来看一个关于String类的问题
写一个MyString类提供以下两个方法:
1、缩写。如 "this sentence can be abbreviated "可缩写为 "tscba "。
2、删除一个字符。如从字符串 "this sentence can be abbreviated "中删除字符 'e '将会得到结果 "this sntnc can b abbrviatd "。
以下是我写的:
class MyString {
private String str;
public MyString() {}
public MyString(String aString) {
str=aString;
}
public String getString() {
return str;
}
public String getAbbreviation() {
int i=0;
String abbreviation=str.substring(0,1);
int index=str.indexOf(i, ' ');
while(i < str.length() && index!=-1) {
abbreviation += str.substring(index+1,index+2);
i=index + 1;
index=str.indexOf(i, ' ');
}
return abbreviation;
}
public String deleteAChar(char aChar) {
int index=0;
int i=str.indexOf(aChar, index);
String newString = " ";
while(index < str.length() && index!=-1) {
newString += str.substring(index, i);
index = i + 1;
str.indexOf(aChar, index);
}
return newString;
}
}
public class TestMyString {
public static void main(String[] args) {
MyString aStr=new MyString( "I am programing in java! ");
String newStr=aStr.getAbbreviation();
System.out.println(newStr);
newStr=aStr.deleteAChar( 'a ');
System.out.println(newStr);
}
}
编译没错就是运行不出来,请高手指教。
[解决办法]
int index=str.indexOf(i, ' ');
Sting中没有这样的函数indexOf(int ch,int String)