0

首先我想说我对Java有点陌生。所以请对我放轻松:)

我编写了这段代码,但我找不到在进度条中更改某个子字符串的字符的方法。我想做的是:

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

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

提前致谢!

   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("");
}
4

3 回答 3

0

Java StringBuilder具有setCharAt可以character用 new 替换位置的方法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');
于 2013-09-23T21:31:46.953 回答
0

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

换句话说,这段代码替换了字符串中的第三个字符。

String s = "abcde";
s = s.substring(0, 2) + "X" + s.substring(3);
System.out.println(s);
于 2013-09-23T21:22:55.523 回答
0

你能多说一点你想要什么吗?因为我认为,你将一些字符串写入控制台。这不是改变你已经打印到控制台的方法。只能在字符串变量中使用的子字符串。

如果您想使用字符串变量中的子字符串方法更改 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');

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

我希望我能帮助你:)

于 2013-09-23T21:24:29.063 回答