Вы можете использовать fileWriter
с флагом, установленным на true
, для добавления.
try {String filename = "MyFile.txt «; FileWriter fw = new FileWriter (имя файла, true); // true добавит новые данные fw.write ("add a line \n"); // добавляет строку в файл fw.close (); } catch (IOException ioe) {System.err.println ("IOException:" + ioe.getMessage ()); }
Как насчет этого:
^\s*(?=.*[1-9])\d*(?:\.\d{1,2})?\s*$
Объяснение:
^ # Start of string
\s* # Optional whitespace
(?=.*[1-9]) # Assert that at least one digit > 0 is present in the string
\d* # integer part (optional)
(?: # decimal part:
\. # dot
\d{1,2} # plus one or two decimal digits
)? # (optional)
\s* # Optional whitespace
$ # End of string
Тест в Python:
>>> import re
>>> test = [".1", "0.1", "1.12", "123.12", "92", "092", "092.13", "0", "0.0", "0.00", "00", "1.234", "-1", "-1.2"]
>>> r = re.compile(r"^\s*(?=.*[1-9])\d*(?:\.\d{1,2})?\s*$")
>>> for item in test:
... print(item, "matches" if r.match(item) else "doesn't match")
...
.1 matches
0.1 matches
1.12 matches
123.12 matches
92 matches
092 matches
092.13 matches
0 doesn't match
0.0 doesn't match
0.00 doesn't match
00 doesn't match
1.234 doesn't match
-1 doesn't match
-1.2 doesn't match
/^[0-9]*(\.{1})?([0-91-9][1-9])?$/
попробуйте это, он передает все ваши случаи
.1
, 0.1
и (неверно) соответствует 0
, 00
– AjahnCharles
23 October 2017 в 16:27
Это выражение не допускает никаких белых пробелов в начале и в конце
/^\d*(?:\.\d{1,2})*$/
0
, 0.0
, 0.00
, 00
(все из которых были отрицательными тестовыми случаями, заданными в вопросе).
– AjahnCharles
20 October 2017 в 08:26
.1
, 0.1
, 092
, 092.13
и (неверно) соответствует 1.234
– AjahnCharles
23 October 2017 в 16:19
[0-9]+\.[0-9]{1,2}
Это найдет:
0.00
(неправильно) и запрещает .1
(неправильно)
– AjahnCharles
23 October 2017 в 16:28
^\s*(?=.*[1-9])[\d,]*(?:\.\d{1,2})?\s*$
, но это также позволило бы1,2,3.45
или,,,,,1
и другие бессмысленные числа. – Tim Pietzcker 29 December 2015 в 10:28