2013-09-23 4 views
0

Прежде всего, я хочу сказать, что я новичок в Java. Поэтому, пожалуйста, будьте легко на меня :)Заменить символ на определенной подстроке

Я сделал этот код, но я не могу найти способ изменить символ в определенной подстроке в моем индикаторе выполнения. Что я хочу сделать, так это:

My progressbar состоит из 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(""); 
} 
+1

Пожалуйста, напишите только код, который имеет отношение к вашему вопросу. – arshajii

+0

Как должен выглядеть результат? Как '| ########### - | B'? – zapl

+0

Результат должен выглядеть так: ####### ---- B --- | (индикатор выполнения составляет 62 символа, и я хочу, чтобы буква B отображалась как 50-й символ) –

ответ

0

Не могли бы вы рассказать немного больше о том, чего хотите. Потому что то, что я море, это то, что вы пишете какую-то строку в консоль. И не способ изменить то, что вы уже печатаете на консоль. Подстрока вы можете использовать только в переменных String.

Если вы хотите изменить lettir с помощью метода подстроки в строке varible try smth. как это:

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

Другой способ изменить charater в строке является использование строки построитель так:

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

Конечно, вы должны сначала проверить длину строки, чтобы избежать исключения.

Я надеюсь, что я помог вам :)

+0

Спасибо за ваш комментарий.В основном я хочу, чтобы это было распечатано. | ######### ----- B --- | (индикатор выполнения составляет 62 символа, и я хочу, чтобы буква B отображалась как 50-й символ) –

0

Вы можете заменить определенный индекс в строке, объединив новую строку вокруг предполагаемого индекса. Например, следующий код заменяет письмо c на письмо X. Где 2 - требуемый индекс для замены.

Иными словами, этот код заменяет третий символ в строке.

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

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'); 
Смежные вопросы