Как проверить, заканчивается ли слово и начинается ли он с общего символа, и заменить его столько раз, сколько оно появляется на 1

Предполагая, что у вас есть mm / dd / yyyy mask, , как в демо , вы можете сделать так:

UPD2. Использование API Datepicker

function ChangeMonth(month)
{
   var initialVal = $('#datepicker').datepicker('getDate')
   curMonth = date.getMonth(),

   if(month > 0 && curMonth < 12){
      initialVal.setMonth(curMonth + 1)
   } 
   if(month < 0 && curMonth > 1) {
      initialVal.setMonth(curMonth - 1)
   }
   $('#datepicker').datepicker('setDate', initialVal);
}

Вызывающие ChangeMonth(1) или ChangeMonth(-1) должны изменить дату в вашем поле datapicker.

UPD1. Если вы используете встроенную версию

Вы можете просто щелкнуть кнопками с событием jQuery click:

$('#datepicker .ui-datepicker-prev').click() // month back
$('#datepicker .ui-datepicker-next').click() //month forward

-1
задан aloy 3 March 2019 в 01:11
поделиться

3 ответа

Вы можете использовать регулярное выражение (RegEx) в методе String.matches () для определения, содержит ли строка конкретные критерии, например:

[110 ]

Если вы хотите получить полное объяснение этого регулярного выражения, перейдите на rexex101.com и введите следующее выражение: .*\*.*\*.*|.*\%.*\%.*.

Вышеупомянутое условие оператора if использует метод String.matches () , чтобы проверить, содержит ли строка текст (или нет текст) между звездочками (*) или между процентов (%) символов. Если это так, мы просто используем метод String.replaceAll () , чтобы заменить эти строковые секции (между *...* и %...% включительно) значением 1, примерно так:

[ 111]

В окне консоли будет отображаться:

hello! hello!! 1? Yes I can.

Если вы сыграете эту строку: "*Java is awesome* Do you % agree % with us?" с приведенным выше кодом, в вашем окне консоли будет отображаться:

1 Do you 1 with us?
[1120 ] Имейте в виду, что это обеспечит тот же вывод на консоль, если указанная вами строка была "** Do you %% with us?". Если вы на самом деле этого не хотите, вам нужно изменить RegEx в методе match () чуть-чуть на что-то вроде этого:

".*\\*.+\\*.*|.*\\%.+\\%.*"

, и вам нужно будет измените RegEx в методе replaceAll () следующим образом:

"\\*.+\\*|%.+%"

С этим изменением теперь должен быть текст между звездочками и символами процента, прежде чем проверка будет успешной и изменение сделано.

0
ответ дан DevilsHnd 3 March 2019 в 01:11
поделиться

Вопрос не ясен (не уверен в том, как %*hello*% каким-то образом переводится в 11, и не понял, что вы подразумеваете под Since it has 4-symbols), но не сработают ли регулярные выражения?

Вы не можете просто сделать:

String replaced = word1.replaceAll("\\*[^\\*]+\\*", "1")
                       .replaceAll("\\%[^\\%]+\\%", "1");
0
ответ дан jbx 3 March 2019 в 01:11
поделиться

Я бы сказал, что ваше предположение, что специальные символы будут заменены дважды, неверно. Функция замены работает только в том случае, если вы пытаетесь заменить вхождение String, которое, похоже, не работает со специальными символами. Только заменить все, кажется, работает в этом случае. В вашем коде вы пытаетесь заменить специальные символы вместе с другими строками внутри этого, так что только функция replaceAll сделает это.

Другими словами, когда выполняется функция replaceAll, она проверяет наличие специальных символов и заменяет ее один раз. Вам не потребуется усилий при использовании StringTokenizer, который является частью библиотеки Scanner, он требуется только в том случае, если вы принимаете ввод пользователя. Таким образом, независимо от того, что вы делаете, вы увидите только 1 friends вместо 11 friends, вам также не понадобится оператор if. Кредит переходит к jbx выше для регулярных выражений. Теперь вы можете сократить свой код следующим образом, помня, что напечатано 1, заменяя whatever внутри специального символа, заменяемого одним числом 1.

Вам понадобится if-statement для поиска, замены или замены функции, которая уже ищет в String, который вы указали для поиска, так что если оператор if является избыточным, то это просто приводит к тому, что код становится многословным. [ 1115]

package object_list_stackoverflow;
import java.util.StringTokenizer;
public class Object_list_stackoverflow {
    public static void main(String[] args) {
        String word1 = "hello! hello!! %can you hear me%? Yes I can.";
        String word2 ="*Java is awesome* Do you % agree % with us?";
        String word3 ="%*hello*% friends";
        String regex = "\\*[^\\*]+\\*";
        String regex1= "\\%[^\\%]+\\%";       
  System.out.println(word3.replaceAll(regex, "1").replaceAll(regex1, "1")); 
       }   
    }

Также прочитайте аналогичный вопрос, перейдя по ссылке: Найти текст между специальными символами и заменить строку
Вы также можете избавиться от буквенно-цифровых символов, посмотрев на ответ dhuma1981: [1111 ] Как заменить специальные символы в строке?

Синтаксис для замены буквенно-цифровых символов в строке:

replaceAll("[^a-zA-Z0-9]", "");
0
ответ дан surendrapanday 3 March 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: