我试图从一个单词中一次删除一个字母。例如,如果单词是数学,我想尝试:ath,mth,mah 现在我有:
for (int i = 1; i < word.length() ; i++){
String removed = word.substring(0, i -1)
+ word.substring(i -1 , word.length());
//do something with the word
}
这不起作用,因为我收到错误:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1
感谢您的帮助!
答案 0 :(得分:1)
以下应该工作:
for (int i = 0; i < word.length(); i++) {
String removed = word.substring(0, i) + word.substring(i + 1);
}
答案 1 :(得分:0)
for (int i = 1; i < word.length() ; i++){
String removed = word.substring(0, i - 1)
+ word.substring(i , word.length());
System.out.println(removed);
//do something with the word
}
实际上,您需要从i
而不是i - 1
开始获取最后一个单词的第二部分。例如,您可以看到这是必需的并且正在运行word.substring(i , word.length());
虽然没有抛出异常。
答案 2 :(得分:0)
这样的事情应该有效。
public class LetterRemover {
public static void main(String [] args) {
String hello = "hello";
for (int i = 1; i < hello.length(); ++i) {
if(i == 1) {
System.out.println(hello.substring(i));
} else {
System.out.println(hello.substring(0, i-1) + hello.substring(i));
}
}
}
}
答案 3 :(得分:0)
int wordLength = word.length();
for (int i = 0; i < wordLength; i++) {
String removed = word.substring(0, i )
+ word.substring(i + 1, wordLength);
System.out.println(removed);
//do something with the word
}
你需要每次删除1个字符,所以你应该把它变成两个单词并将它们连接起来。