我正在尝试编写一个带String
参数str的函数。它返回一个新版本,其中删除了所有“x”字符。除非str的开头或结尾处的“x”不应被删除。我只能使用循环来解决此问题,而不是StringBuilder
或.replace()
方法。
我不确定如何删除某个字符串位置的字符。到目前为止,这是我的代码,任何输入将不胜感激。
public String stringX(String str)
{
String result = str;
int len = str.length() - 1;
for (int i = 0; i <= len; i++)
{
char letter = str.charAt(i);
if (letter == 'x' && ((i != 0) && (i != len)))
{
}
}
return result;
}
答案 0 :(得分:0)
您无法从String中删除字符,因为String是不可变的(无法更改)。如果您想更多地了解这个check the documentation out here并阅读介绍性信息。
基本上,这意味着您需要创建一个包含您想要的所有字符的新String。
您可以做的是将输入转换为char[]
并使用当前的for循环进行循环。当您找到不是x的字符时,可以将其附加到空字符串以进行输出。
public String stringX(String str)
{
char[] c = str.toCharArray();
String result = "";
int len = str.length() - 1;
for (int i = 0; i <= len; i++)
{
char letter = c[i];
if (!(letter == 'x' && ((i != 0) && (i != len))))
{
result += letter;
}
}
return result;
}
这需要更改您拥有的代码,同时仍然提供所需的结果。
答案 1 :(得分:-1)
我在你的代码中做了一些修改:
String result = "";
int len = str.length() - 1;
for (int i = 0; i <= len; i++)
{
char letter = str.charAt(i);
if (letter == 'x' && ((i == 0) || (i == len))) {
result += String.valueOf(letter);
}
else if(letter != 'x'){
result += String.valueOf(letter);
}
}