InsideDarkWeb.com

Изменение элемента массива char

Задача – в поступающей строке заменить каждый 10й символ звездочкой *.

Удаляемые символы конкатенировать в строку ответа.
Например, при содержимом файла:

0123456789012345678A012345678B01

новое содержимое должно быть

012345678*012345678*012345678*01

и метод должен вернуть 9AB

public String setStars(String filename) {
    char[] newChr = new char[10];
    String newStr = "";
    String ansStr = "";
    int x = 0;
    try {
        RandomAccessFile file = new RandomAccessFile(filename, "rw");
        char[] chr = String.valueOf(file).toCharArray();
        for (x = x; x < chr.length - 1; x++) {
            if (x % 10 == 9) {
                ansStr = ansStr + chr[x];
                chr[x] = char("*");
            }
        }
    } catch (IOException e) {
        System.out.println(e.getMessage());
    }
    return ansStr;
}

Вопрос: как присвоить символ элементу массива?

chr[x] = char("*");

One Answer

  1. В Вашем массиве chr лежит строковое представление объекта RandomAccessFile, а не строка из файла. Чтобы корректно прочитать из файла можно использовать FileReader и BufferedReader из пакета java.io

         FileReader fr = new FileReader(filename);
         BufferedReader br = new BufferedReader(fr);
    
  2. Для конкатенации строк лучше использовать StringBuilder, при конкатенации через += вы каждую итерацию порождаете новую строку.

         StringBuilder ans = new StringBuilder();
         ans.append(line.charAt(i));
    
  3. В вашем цикле for лучше инициализировать переменную внутри цикла, и итерироваться до x < chr.length, при условии x < chr.length - 1 Вы не проверяете последний символ.

          for (x = 0; x < chr.length; x++) {...}
    
  4. Чтобы присвоить нужное значение стоит написать

          chr[x] = '*';
    

Answered by Kir on January 10, 2021

Add your own answers!

Related Questions

Проблема с дискорд ботом

0  Asked on August 27, 2020 by jaboid

     

Не загружается parrot os

0  Asked on August 16, 2020 by darkhackergs

     

Классы. Калькулятор

3  Asked on August 13, 2020 by krumlyakov

   

скрыть/показать текст с помощью jquery

1  Asked on August 13, 2020 by andrey-sindeev

 

Не могу понять почему не работает echo

1  Asked on August 12, 2020 by java-js-html-css

 

Не работает Raycast

1  Asked on August 10, 2020 by yukio-ito

   

Ask a Question

Get help from others!

© 2021 InsideDarkWeb.com. All rights reserved.