参考下面的问题 - String.replaceAll带有双反斜杠的单反斜杠
我写了一个测试程序,我发现在两种情况下结果都是正确的,无论我是否逃避反斜杠.这可能是因为 - \t是可识别的Java String转义序列.(尝试\ s,它会抱怨). - \t在正则表达式中作为文字选项卡.我有点不确定原因.
有没有关于在Java中转义正则表达式的一般准则.我认为使用两个反斜杠是正确的方法.
我仍然想知道你的意见.
public class TestDeleteMe {
public static void main(String args[]) {
System.out.println(System.currentTimeMillis());
String str1 = "a b"; //tab between a and b
//pattern - a and b with any number of spaces or tabs between
System.out.println("matches = " + str1.matches("^a[ \\t]*b$"));
System.out.println("matches = " + str1.matches("^a[ \t]*b$"));
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个泛型方法来返回ZonedDateTime给定的日期String及其格式.
如果未在日期中指定,我们如何ZonedDateTime使用默认值?ZoneIdString
它可以用java.util.Calendar,但我想使用Java 8时间API.
这里的问题是使用固定的时区.我将格式指定为参数.日期及其格式都是String参数.更通用.
代码和输出如下:
public class DateUtil {
/** Convert a given String to ZonedDateTime. Use default Zone in string does not have zone. */
public ZonedDateTime parseToZonedDateTime(String date, String dateFormat) {
//use java.time from java 8
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(dateFormat);
ZonedDateTime zonedDateTime = ZonedDateTime.parse(date, formatter);
return zonedDateTime;
}
public static void main(String args[]) {
DateUtil dateUtil = new DateUtil();
System.out.println(dateUtil.parseToZonedDateTime("2017-09-14 15:00:00+0530", "yyyy-MM-dd HH:mm:ssZ"));
System.out.println(dateUtil.parseToZonedDateTime("2017-09-14 …Run Code Online (Sandbox Code Playgroud) 如何准确地将Java中的UTF8编码文件读入字符串?
当我将此.java文件的编码更改为UTF-8(Eclipse> Rightclick on App.java>属性>资源>文本文件编码)时,它可以在Eclipse中运行,但不能在命令行中运行.似乎eclipse在运行App时设置了file.encoding参数.
为什么源文件的编码会对从字节创建String产生任何影响.当编码已知时,从字节创建String的傻瓜式方法是什么?我可能有不同编码的文件.一旦知道文件的编码,我必须能够读入字符串,而不管file.encoding的值是多少?
utf8文件的内容如下
English Hello World.
Korean ?????.
Japanese ????????
Russian ?????? ???.
German Hallo Welt.
Spanish Hola mundo.
Hindi ???? ???????
Gujarati ???? ??????.
Thai ????????????.
Run Code Online (Sandbox Code Playgroud)
- 文件结束 -
代码如下.我的意见在其中的评论中.
public class App {
public static void main(String[] args) {
String slash = System.getProperty("file.separator");
File inputUtfFile = new File("C:" + slash + "sources" + slash + "TestUtfRead" + slash + "utf8text.txt");
File outputUtfFile = new File("C:" + slash + "sources" + slash + "TestUtfRead" + …Run Code Online (Sandbox Code Playgroud)