替换特定子串的char

时间:2013-09-23 21:10:26

标签: java replace substring

首先,我想说我是Java的新手。所以请对我很轻松:))

我制作了这段代码,但我无法找到一种方法来更改进度条中某个子字符串的字符。我想做的是:

我的进度条由62个字符组成(包括|)。我希望将第50个字符改成字母B(大写)。它应该看起来像这样:| ######### ---- B-- | < / p>

我尝试了几件事,但我不知道在哪里放置代码行来完成这项工作。我尝试使用子字符串和替换代码,但我找不到一种方法来使这项工作。也许我需要以不同的方式编写代码才能使其工作?我希望有人可以帮助我。

提前致谢!

   int ecttotal = ectcourse1+ectcourse2+ectcourse3+ectcourse4+ectcourse5+ectcourse6+ectcourse7;
   int ectmax = 60;
   int ectavg = ectmax - ecttotal;

   //Progressbar
   int MAX_ROWS = 1;

   for (int row = 1; row == MAX_ROWS; row++)
     {
           System.out.print("|");
         for (int hash = 1; hash <= ecttotal; hash++)
           System.out.print ("#");
         for (int hyphen = 1; hyphen <= ectavg; hyphen++)
           System.out.print ("-");
           System.out.print("|");
     }
           System.out.println("");
           System.out.println("");
}

3 个答案:

答案 0 :(得分:0)

您可以通过在目标索引周围连接新字符串来替换字符串中的某个索引。例如,以下代码将字母c替换为字母X。其中2是要替换的预期索引。

换句话说,此代码替换字符串中的第3个字符。

String s = "abcde";
s = s.substring(0, 2) + "X" + s.substring(3);
System.out.println(s);

答案 1 :(得分:0)

你能告诉你想要什么吗?因为我认为那是什么,你把一些字符串写入控制台。并不是要改变你已经打印到控制台的东西。 子串只能在String varibles中使用。

如果你想在字符串变量中使用substring方法改变lettir,请尝试使用smth。像这样:

String a="thi is long string try it";
if(a.length()>50){
    a=a.substring(0,49)+"B"+a.substring(51);
}

在字符串中更改字符串的其他方法是使用字符串构建器:

StringBuilder a= new StringBuilder("thi is long string try it");
a.setCharAt(50, 'B');

当然,您必须首先检查字符串的长度以避免例外。

我希望我能帮助你:)。

答案 2 :(得分:0)

Java StringBuilder方法setCharAt可以用新character替换character位置。

StringBuilder myName = new StringBuilder(<original string>);
myName.setCharAt(<position>, <character to replace>);

<position>以索引0

开头

在你的情况下:

StringBuilder myName = new StringBuilder("big longgggg string");
myName.setCharAt(50, 'B');