Предполагая, что у вас есть 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
Вы можете использовать регулярное выражение (RegEx) в методе String.matches () для определения, содержит ли строка конкретные критерии, например:
[110 ] Если вы хотите получить полное объяснение этого регулярного выражения, перейдите на rexex101.com и введите следующее выражение: .*\*.*\*.*|.*\%.*\%.*
.
Вышеупомянутое условие оператора if использует метод String.matches () , чтобы проверить, содержит ли строка текст (или нет текст) между звездочками (*) или между процентов (%) символов. Если это так, мы просто используем метод String.replaceAll () , чтобы заменить эти строковые секции (между *...*
и %...%
включительно) значением 1, примерно так:
В окне консоли будет отображаться:
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 () следующим образом:
"\\*.+\\*|%.+%"
С этим изменением теперь должен быть текст между звездочками и символами процента, прежде чем проверка будет успешной и изменение сделано.
Вопрос не ясен (не уверен в том, как %*hello*%
каким-то образом переводится в 11, и не понял, что вы подразумеваете под Since it has 4-symbols
), но не сработают ли регулярные выражения?
Вы не можете просто сделать:
String replaced = word1.replaceAll("\\*[^\\*]+\\*", "1")
.replaceAll("\\%[^\\%]+\\%", "1");
Я бы сказал, что ваше предположение, что специальные символы будут заменены дважды, неверно. Функция замены работает только в том случае, если вы пытаетесь заменить вхождение 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]", "");