Java 如何使用for循环擦除字符串中的某些字符?
我正在尝试编写一个函数,该函数接受一个Java 如何使用for循环擦除字符串中的某些字符?,java,string,methods,charat,Java,String,Methods,Charat,我正在尝试编写一个函数,该函数接受一个String参数str。它返回一个新版本,其中所有的“x”字符都已删除。除了str开头或结尾的“x”不应删除。对于这个问题,我只能使用循环,而不能使用StringBuilder或.replace()方法 我不知道如何删除某个字符串位置的字符。到目前为止,这是我的代码,任何输入都将不胜感激 public String stringX(String str) { String result = str; int len = str.length(
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;
}
公共字符串stringX(String str)
{
字符串结果=str;
int len=str.length()-1;
对于(int i=0;i我已对您的代码进行了一些修改:
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);
}
}
字符串结果=”;
int len=str.length()-1;
对于(int i=0;i您不能从字符串中删除字符,因为该字符串是不可变的(无法更改)。如果您想了解更多关于此的信息并阅读介绍性信息
基本上,这意味着您需要创建一个包含您想要的所有字符的新字符串
您可以做的是将输入转换为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;
}
公共字符串stringX(String str)
{
char[]c=str.toCharArray();
字符串结果=”;
int len=str.length()-1;
对于(int i=0;i@ETR009),此修改将为您提供所需的结果。您能否测试xxy
?@Ravi输入xxy时工作正常,并将xy作为输出。感谢您的输入,它帮助很大。除了“x”在str的最开始或结尾不应该被删除,那么它什么时候应该首先删除,什么时候应该删除结束???