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的最开始或结尾不应该被删除,那么它什么时候应该首先删除,什么时候应该删除结束???