2016-09-04 5 views
0

Я пытаюсь написать код, который содержит строку со специальным символом ",". Он может иметь либо одно вхождение, либо несколько случаев.как заменить несколько вхождений одного специального символа с разными символами

Теперь, что я хочу сделать, я хочу заменить каждый специальный символ символами [a-z]. Каждый отдельный символ следует заменить на каждый символ символами [a-z].

После каждого раза заменяются специальные символы. Я проверю строку для свойства, если она удовлетворяет этому свойству, программа должна завершиться, и строка будет возвращена.

Например принимать входные данные как: hello,,how

Я хочу, чтобы заменить первую "," с 'a' и второй "," с 'a' первым, а затем с a,b затем a,c ..... a,z до z,a......z,z. (Если в этом процессе строка будет подчиняться моему требуемому свойству, эта строка будет возвращена)

Приведенный выше пример привет, как бы создать эти строки - hellowaahow, hellowabhow, hellowachow ..... hellowazhow,. ..... hellozahow, hellowzbhow, hellozchow ...... hellozzhow. Если какое-либо время в этом процессе строка удовлетворяет свойству, что строка будет возвращена и программа выйдет

У меня даже нет идеи, как подойти к этой проблеме, может ли кто-нибудь помочь мне с эффективной техникой?

+0

Существуют ли какие-либо ограничения, известные вам как максимальная длина строки, максимальная заполняемость специального символа ','? –

+0

Большая часть того, что вам нужно, находится в [Javadoc for String] (http://docs.oracle.com/javase/8/docs/api/java/lang/String.html). Это и вложенный цикл или два - все, что требуется. (Да, это можно сделать легко с помощью Streams, но это немного продвинуто для этого.) –

+0

вы можете считать, что длина строки не превышает 25 000, включая максимальные вхождения специального символа (может иметь любое количество вхождений ниже 25 000), т.е. может даже содержать строку, например ,,,,,,,,, и я заменил бы все специальные символы каждым персонажем, как я упоминал в проблеме. – Revanth

ответ

0

помочь мне с эффективной техникой

Вы должны следить за то, что следующая строка замены:

String nextReplacement = "a"; 

также следить за следующей букве:

char nextLetter = 'b'; 

Пройдите через строку символов. Когда вы увидите запятую, вставьте nextReplacement, добавьте ","+nextLetter в nextReplacement и увеличивайте nextLetter, если вы еще не достигли z.

Если вы видите символ без запятой, вставьте его в выходной файл без изменения.

+0

Спасибо, я попробую сразу, кстати, это «,» + nextLetter все равно будет «,» в нем, не так ли? Я хочу заменить это «,», но добавление просто добавит символ в запятую, не так ли? извините, если я ошибаюсь, я немного новичок в программировании – Revanth

+0

Важная часть этого, о которой не упоминается, заключается в том, что вы должны использовать ['StringBuilder'] (https://docs.oracle.com/javase/ 8/docs/api/java/lang/StringBuilder.html), чтобы построить результат, поэтому, когда ответ говорит «вставить», это означает вызов метода «append()»). – Andreas

+0

@Revanth Сторона входа должна быть отдельной от выходной стороны, поэтому ваш код, который читает ввод, не должен видеть эту дополнительную запятую. – dasblinkenlight

Смежные вопросы