2016-11-28 35 views
0

我正在解决一些初学Java的例子,并且有一个问题,我必须返回一个新字符串,其中索引为n的字符已被删除。如何在Java中删除字符串中的字符?

例如:

missingChar("kitten", 1) → "ktten" 

我必须删除的第一个字符在字符串。

我试过,但没有奏效:

for (int i=0;i<str.length()-1;i++){ 
    while (i==n){ 
     str=str.replaceFirst(String.valueOf(str.charAt(i)),""); 
     return str; 
    } 
} 

有人能告诉我什么是错我的代码?

+3

“但它没有工作”。什么没有奏效?你卡在哪里?你是否遇到异常? – QBrute

+1

您正在查找的方法是[substring()](https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring(int,%20int))。 –

回答

6

这里有一个简单的方法做你想要什么:

String missingChar(String s, int i) { 
     return s.substring(0, i) + s.substring(i+1); 
    } 

你在你的问题中提供的代码替换整个字符串中的字符的第一次出现。而且,顺便说一句,如果因为return语句而具有与while相同的效果。 for循环也没用,因为你有字符索引(我猜这是n?)

+0

是的,我猜循环是不必要的 'String a = str.substring(0,n); String b = str.substring(n + 1,str.length()); return a + b' 工作,谢谢! –