有没有办法regular expression在Java中编写一个查找a是否String包含奇数个特定字符的方法,即"a"?我已经完成了编写更详细的代码,使用以下方法:
public static boolean hasEvenNumber(String s) {
int count = 0;
Pattern p = Pattern.compile("(^a)*(a)");
Matcher m = p.matcher(s);
while (m.find())
count++;
if (count % 2 != 0)
return true;
return false;
}
Run Code Online (Sandbox Code Playgroud)
例如,如果将String "jsadaajaaikadjasl"作为参数传递,则它返回true,因为它包含7 "a".是否有一种更优雅的方式来实现它只使用a regex并检查它:
Pattern p = Pattern.compile(...);
Matcher m = p.matcher(s);
if(m.matches())
return true;
Run Code Online (Sandbox Code Playgroud)
?
我正在使用休眠模式开发应用程序,并且Entities像往常一样保存在hibernate事务中。如果事务成功完成,我想从事务中“获取反馈”,并据此执行下一个代码。这是我用来更新实体的简单方法:
public boolean updateDepartment(Department s) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tx = HibernateUtil.getTransaction(session);
boolean success = false;
try
{
tx.begin();
session.update(s);
tx.commit();
success = true;
}
catch (Exception e)
{
tx.rollback();
e.printStackTrace();
success = false;
}
return success;
}
Run Code Online (Sandbox Code Playgroud)
从其他代码调用该方法:
boolean b = dao.updateDepartment(d);
if(b)
{
doStuff();
}
else
{
showMessage("Save not usccessful. Try again");
}
Run Code Online (Sandbox Code Playgroud)
我的问题是这种使用boolean变量的方法是否是最佳方法,或者是否可以采用更好的方法来执行。如果我的方法还可以,那么将return语句括起来会更好finally吗?
我在 android studio 中有一个多模块项目,我想将一个.aar文件集成到一个模块中,该模块在 App 模块中被引用为库。项目结构为:
- module1
- module2
- module3
- module4
- moduleApp
Run Code Online (Sandbox Code Playgroud)
模块 1 用作模块 2 中的库引用。
build.gradle module2:
dependencies {
...
compile project(':module1')
}
Run Code Online (Sandbox Code Playgroud)
module2 和其他模块在 th App 模块中引用。
build.gradle moduleApp:
dependencies {
...
compile project(':module2')
compile project(':module3')
compile project(':module4')
}
Run Code Online (Sandbox Code Playgroud)
我需要在模块 1 中集成一个 .aar 文件作为库,因为它是模块 1 实现所必需的。我以正常方式进行集成:
build.gradle module1:
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile 'package.name.of.aar:myLibrary@aar'
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行时,gradle sync我收到错误:
failed to resolve …Run Code Online (Sandbox Code Playgroud) 我在处理C++程序中的内存方面没有经验,所以在这种情况下我想要一条建议:
我想new Object在一个类中创建一个函数,这个函数在程序结束之前是必不可少的.就我而言,如果我使用运算符new,我有时应该删除它.考虑到它必须在一个类中初始化,我何时以及如何最终删除它?
由于Java中运算符优先级的原因,我感到很困惑.我读的教程以前,时间长,具有比OR,这是在提供的答案证实了更高的优先级问题.但是,我目前正在使用"Sun认证的Java 6程序员学习指南"来学习Java.本书包含以下示例:
int y = 5;
int x = 2;
if ((x > 3) && (y < 2) | doStuff()) {
System.out.println("true");
}
Run Code Online (Sandbox Code Playgroud)
我正在复制并引用编译器如何处理上述代码的解释:
If (x > 3)istrue,或者是(y < 2)或者结果doStuff()是true,然后打印"true".由于短路&&,表达式被评估为好像周围有括号(y < 2) | doStuff().换句话说,它被评估为单个表达式之前&&和之后的单个表达式&&.
这意味着虽然|优先级高于&&.是不是因为使用了"非短路OR"而不是短路OR?什么是真的?
我知道在这个网站上已经讨论过类似的问题,但考虑到一个具体的例子,我还没有得到进一步的帮助.我可以掌握通知的差异()和notifyAll()关于Thread在理论上"awakeining",但我看不出他们是如何影响程序的功能时,它们中的使用,而不是其他.因此,我设置以下代码,我想知道使用它们中的每一个有什么影响.我可以从一开始就说它们给出相同的输出(Sum打印3次).
他们几乎有什么不同?如何修改程序,以便应用通知或notifyAll对其功能发挥关键作用(给出不同的结果)?
任务:
class MyWidget implements Runnable {
private List<Integer> list;
private int sum;
public MyWidget(List<Integer> l) {
list = l;
}
public synchronized int getSum() {
return sum;
}
@Override
public void run() {
synchronized (this) {
int total = 0;
for (Integer i : list)
total += i;
sum = total;
notifyAll();
}
}
Run Code Online (Sandbox Code Playgroud)
}
线:
public class MyClient extends Thread {
MyWidget mw;
public MyClient(MyWidget wid) {
mw = wid;
} …Run Code Online (Sandbox Code Playgroud) 我现在开始使用Alfresco CMS.我需要在我的内容模型中创建一个"方面",它必须包含许多属性:
Aspect:
property 1 : String
property 2 : int
property 3 : int
property 4 : long
Run Code Online (Sandbox Code Playgroud)
此外,它必须包含另外两个属性,这些属性由以下属性组成:
Format:
FormatProperty1: int
FormatProperty2: int
FormatProperty3: int
Metadata:
list1: List<String>
list2: List<String>
MetadataProperty 3: boolean
Run Code Online (Sandbox Code Playgroud)
我还没有在Alfresco中创建简单的内容模型和方面.基于我之前在关系数据库中的知识,我将上述结构视为表之间的关联.如何在具有一个或多个方面的Alfresco内容模型中执行该操作?
database-design alfresco content-management-system database-schema content-model
我想知道是什么样的区别MappedSuperclass和Entity Abstract Class当一个人想要从一个超类派生Hibernate.我知道Hibernate不会在数据库中创建一个表MappedSuperclass.我在JavaEE文档中读到"抽象实体就像具体实体但不能被实例化".由于它们无法实例化,我推断数据库中没有匹配的表.我对吗?
如果是这样,在每种情况下,使用a MappedSuperclass和a Entity Abstract Class以及对软件和数据库的影响实际上有什么区别?
我试图在Mac OS上的Wildfly 10 Application Server中配置PostgreSQL数据源.我正在按照说明书的规定行事.我创建了一个订单:
/wildfly-10.1.0.Final/modules/system/layers/base/org/postgresql/main.
Run Code Online (Sandbox Code Playgroud)
按此顺序我放了JDBC驱动程序:
postgresql-9.3-1104.jdbc4.jar
Run Code Online (Sandbox Code Playgroud)
我创建了一个module.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="org.postgresql“>
<resources>
<resource-root path="postgresql-9.3-1104.jdbc4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
Run Code Online (Sandbox Code Playgroud)
在standalone.xml文件中,我在datasources下创建了数据源:
<datasource jndi-name="java:jboss/datasources/PostgresDS" pool-name="PostgresDS" enabled="true"
use-java-context="true">
<connection-url>jdbc:postgresql://localhost:5432/testdb</connection-url>
<driver>postgresql</driver>
<security>
<user-name>user</user-name>
<password>password</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"></valid-connection-checker>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"></exception-sorter>
</validation>
</datasource>
Run Code Online (Sandbox Code Playgroud)
和司机:
<drivers>
<driver name="postgresql" module="org.postgresql">
<datasource-class>org.postgresql.Driver</datasource-class>
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
</driver>
</drivers>
Run Code Online (Sandbox Code Playgroud)
但是,不能安装数据源,当我启动服务器时,我收到消息(错误):
ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
("subsystem" => "datasources"),
("data-source" => "PostgresDS")
]) - failure description: { …Run Code Online (Sandbox Code Playgroud) 在这个C++代码中,我尝试从向量的末尾擦除元素但程序停止并且我收到消息: Expression: vector erase iterator outside range.
问题是什么?毕竟通过这个代码向量一个指针的向量或我在push_back中传递它们的方式只插入一个指针的副本?
int _tmain(int argc, _TCHAR* argv[])
{
vector<Player*> allPlayers;
allPlayers = createPlayers();
int numPlayers;
cout<<"Vector size: "<<allPlayers.size();
cout<<endl;
cout<<"How many players are involved in the game(1-4)?\n";
cin>>numPlayers;
cout<<endl;
allPlayers.erase(allPlayers.end());
return 0;
}
vector<Player*> createPlayers(){
Player *Player1 = new Player(1,1500);
Player *Player2 = new Player(2,1500);
Player *Player3 = new Player(3,1500);
Player *Player4 = new Player(4,1500);
vector<Player*> allPlayers;
allPlayers.push_back(Player1);
allPlayers.push_back(Player2);
allPlayers.push_back(Player3);
allPlayers.push_back(Player4);
return allPlayers;
}
Run Code Online (Sandbox Code Playgroud) java ×4
c++ ×2
hibernate ×2
java-ee ×2
alfresco ×1
android ×1
database ×1
datasource ×1
gradle ×1
jpa ×1
new-operator ×1
notify ×1
operators ×1
postgresql ×1
regex ×1
string ×1
transactions ×1
try-catch ×1
vector ×1
wildfly ×1