我试图使用java匹配多行文本.当我使用Pattern
带Pattern.MULTILINE
修饰符的类时,我能够匹配,但我无法使用(?m).
使用(?m)
和使用相同的模式String.matches
似乎不起作用.
我确信我错过了什么,但不知道是什么.我不太擅长正则表达式.
这是我试过的
String test = "User Comments: This is \t a\ta \n test \n\n message \n";
String pattern1 = "User Comments: (\\W)*(\\S)*";
Pattern p = Pattern.compile(pattern1, Pattern.MULTILINE);
System.out.println(p.matcher(test).find()); //true
String pattern2 = "(?m)User Comments: (\\W)*(\\S)*";
System.out.println(test.matches(pattern2)); //false - why?
Run Code Online (Sandbox Code Playgroud) 我想在a中显示值HashMap
.A HashMap
可能有重复的值(但不是重复键),但我想只显示一次值.
所以我应该找到是否Map
有重复的值.我知道我们可以迭代Map
并使用返回布尔值map.containsValue(value)
.我想知道是否有任何方法可以在map中找到重复值,或者我自己应该编写代码?
我试图从eclipse启动tomcat服务器6.0.32(不是我的应用程序),但它失败并出现错误"本地主机上的服务器Apache Tomcat v6.0.32无法启动".但是当我用startup.bat启动时,它没问题.我检查了tomcat的所有端口 - 它们是免费的.这是一个控制台日志
11.08.2011 15:15:46 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: <MY_PATH_VARIABLE>
11.08.2011 15:15:47 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
11.08.2011 15:15:47 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1068 ms
11.08.2011 15:15:47 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
11.08.2011 15:15:47 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.32
11.08.2011 15:15:47 org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor ProjectName.xml
Run Code Online (Sandbox Code Playgroud)
也许有人知道如何解决它?((((
我有两个表,类似于:
Article和ArticleRelevance
它们具有一对一的关系,ArticleRelevance是可选的,这意味着文章可能(或可能不)具有ArticleRelevance.
我想选择所有文章以及ArticleRelevance详细信息.
使用传统的SQL,我将在表上进行外连接,例如
SELECT *
FROM ARTICLE A LEFT OUTER JOIN ARTICLE_RELEVANCE AR ON A.ARTICLE_ID = AR.ARTICLE_ID
Run Code Online (Sandbox Code Playgroud)
我在HQL中尝试了类似的查询,并获得了一条带有消息的异常 "Path Expected for Join"
我无法理解这条消息.这意味着什么,我该如何解决?
(正如你可能已经猜到的那样)我是一个绝对的冬眠新手.
我必须使用HQL.实际上我已经有一个HQL,连接两个或三个表,我必须添加这个条件.
StringBuffer hql = new StringBuffer();
hql.append(" select new service.orders.Order (order.orderNo, article.articleNo, article.articleName)");
hql.append(" from (Order order join Article article with order.articleNo = article.articleNo) left outer join ArticleRelevance articleRelevance with article.articleNo = articleRelevance.articleNo");
hql.append(" and order.orderNo = "+orderNumber);
Run Code Online (Sandbox Code Playgroud)
在这个论坛中,有人说这是"缺少功能".真正?
我想对<
&>
keys 使用keybinding ,然后在我的JFrame上使用它.
我正在使用以下代码尝试获取<key.
KeyStroke testStroke = KeyStroke.getKeyStroke("<");
mainJFrame.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
.put(testStroke, "clickButton");
mainJFrame.getRootPane().getActionMap().put("clickButton", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("PRESS!!!!");
}
});
Run Code Online (Sandbox Code Playgroud)
我无法让它发挥作用.但是,如果我使用像A这样的键,它会很好用
KeyStroke testStroke = KeyStroke.getKeyStroke("A");
Run Code Online (Sandbox Code Playgroud)
所以我认为KeyStroke是错误的,其余的代码都没问题.
如何获得按键<&>的按键?
如何将背景图像设置为JTextPane - 某种水印.
我尝试了这个选项 - 创建一个JTextPane的子类,并使用paint方法绘制图像.但随后文本显示在图像"下方"而不是上方.
有没有"标准"或"众所周知"的方法来做到这一点?
(顺便说一下,我尝试过(傻傻的东西?)使内容类型为"text/html",并将图像设置为a的背景图像,<div>
但它没有帮助.)
我想使用Java移动和重命名文件.我尝试了这段代码,但无法重命名:请帮忙,谢谢
public class MoveAndRenameFile {
public MoveAndRenameFile(){
//Current Date and Time
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
{
File file = new File("C:\\FolderA\\Client.pdf");
File newFile = new File(("C:\\FolderB\\Clientx.pdf"));
if(file.renameTo(newFile)+dateFormat.format(date)){
System.out.println("File rename success");;
}else{
System.out.println("File rename failed");
}
}
Run Code Online (Sandbox Code Playgroud) 我试图匹配名称中有两个点的目录中的文件,就像theme.default.properties
我认为模式.\\..\\..
应该是所需的模式[ .
匹配任何字符并\.
匹配一个dot
]但它匹配两者oneTwo.txt
和theme.default.properties
我尝试了以下内容:
[ resources/themes
有两个文件oneTwo.txt
,theme.default.properties
]
1.
public static void loadThemes()
{
File themeDirectory = new File("resources/themes");
if(themeDirectory.exists())
{
File[] themeFiles = themeDirectory.listFiles();
for(File themeFile : themeFiles)
{
if(themeFile.getName().matches(".\\..\\.."))
{
System.out.println(themeFile.getName());
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这没什么打印
和以下
File[] themeFiles = themeDirectory.listFiles(new FilenameFilter()
{
public boolean accept(File dir, String name)
{
return name.matches(".\\..\\..");
}
});
for (File file : themeFiles)
{
System.out.println(file.getName());
}
Run Code Online (Sandbox Code Playgroud)
打印两者
oneTwo.txt …
Run Code Online (Sandbox Code Playgroud) 我想制作一个Java swing按钮'not-focussable'.该按钮根本不应该获得焦点,但应该能够接收鼠标点击.
我认为以下选项,但这些要么不完全解决我的问题,或者看起来不优雅.还有其他/更好/建议的选择吗?
在我的JAVA程序中有这样的代码:
int f_part = (int) ((f_num - num) * 100);
Run Code Online (Sandbox Code Playgroud)
f_num是double,num是long.我只想将小数部分取出并将其分配给f_part.但有时候f_part值比它的值小1.这意味着如果f_num = 123.55和num = 123,但f_part等于54.它只发生f_num而num大于100.我不知道为什么会发生这种情况.请有人解释为什么会发生这种情况以及纠正它的方法.
我有一个场景,其中有服务器侦听指定的IP和端口以及连接到该服务器的客户端.现在我正在使用readline
方法从服务器读取响应:
String readme=bs.readline()).
Run Code Online (Sandbox Code Playgroud)
这bs
是bufferedreader
对象.我想知道在阅读回复之前是否写了这一行
socket.setSoTimeout(1000)
Run Code Online (Sandbox Code Playgroud)
如果没有响应,直到1000毫秒
套接字是否超时并断开连接,或者它是否断开套接字并给出空字符串readme
.
最后几天,我与一个奇怪的甲骨文问题面对面.我在tnsnames.ora中定义了数据库.安装了Oracle客户端,客户端和客户端/ bin已添加到PATH.
Ping
工作,tnsping
工作,我可以通过数据库端口与telnet连接到主机.
当我尝试运行尝试连接到db的应用程序时,我得到了
ORA-12543:TNS:目标主机无法访问
当我尝试通过sqlplus连接时,情况也是如此
sqlplus用户名/密码@ TNSNAME
情况只发生在一个工作站上,它的共同点应该是有效的.
WS是Windows 7 64位.
数据库:
Oracle数据库10g企业版10.2.0.5.0版 - 64位生产