朋友我必须在项目中捏造一些东西,我发现了一些困难,如下:
String name1 = "Bharath" // its length should be 12
String name2 = "Raju" // its length should be 8
String name3 = "Rohan" // its length should be 9
String name4 = "Sujeeth" // its length should be 12
String name5 = "Rahul" // its length should be 11 " Means all Strings with Variable length"
Run Code Online (Sandbox Code Playgroud)
我有字符串和它们的长度.我需要输出如下格式.通过使用字符串连接和填充.我需要在Groovy中回答,即使Java也很好..
"Bharath Raju Rohan Sujeeth Rahul "
Run Code Online (Sandbox Code Playgroud)
手段:
Bharath以5个黑色空格作为lenth是12(7 + 5 = 12),
Raju从4个黑色空间开始,因为lenth是8(4 + 4 = 8),
Rohan向前开了4个黑色空格,因为lenth是9(5 + 4),
Sujeeth向前5个黑色空间,因为lenth是12(7 …
我正在使用GBench.对于常规方法基准测试,它非常酷.现在我想要的是对Recursive函数进行基准测试.
让我们说:
def recursive() {
//do something
return recursive()
}
Run Code Online (Sandbox Code Playgroud)
对于这个功能,我需要做Benchmark.添加@Benchmark方法顶部为每个递归调用提供基准.但我想要的是获得整个recursive方法的Benchmark .
有可能吗?
我多年来一直是正则表达式的从业者,主要是perl,您可以在其中做一些方便的事情,例如:
my $delim = qr#[-\:/]#; # basic enough
my $field1 = qr/(\d{8})/; # basic enough
my $field2 = qr/(?:one|two|three)(\d{8,10})/; # basic enough
...
my $re = qr/$field1${delim}$field2/; # beautiful magicks
while (<>) {
/$re/ and print "$1\n";
}
Run Code Online (Sandbox Code Playgroud)
关键不是您可以对其进行预编译,而是可以在另一个内部使用一个正则表达式作为变量来构建一个更大的,实际可读的复合正则表达式。各个片段都是可测试的,带有简单的测试数据,并且合成的片段可以是动态的(例如,$ delim可以作为参数传递给子对象)。
问题是,在Java中,Pattern / Matcher方法是一天的主要方式,如何解决这一问题。
这是我的刺:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
Pattern delim = Pattern.compile("[-\:/]");
Pattern field1 = Pattern.compile("(\d{8})");
Pattern field2 = Pattern.compile("(?:one|two|three)(\d{8,10})");
Pattern re_pat = Pattern.complle(
field1.pattern() + delim.pattern() + field2.pattern();
)
...
Matcher re = re_pat.matcher(input);
Run Code Online (Sandbox Code Playgroud)
这是可靠的(是否有陷阱吗?),或者是否是等效的最佳Java?相对于Groovy,也可以随意回答这个问题,因为这是我编写此代码的最终目的(但Groovy似乎或多或少地依赖于底层Java regex实现)。谢谢。
在我的项目的目标目录中,有一个名为stacktrace.log的文件.我已经意识到文件的大小已经超过3千兆字节.我删除这个文件是否安全?删除后是否会导致任何文件未找到异常?谢谢你的时间.
- -编辑
如果确实导致文件未找到异常,我该如何解决问题?
我在resources.groovy中定义了Spring bean.我可以在控制器中访问它们.我在视图中也有一些没有控制器的GSP.我想知道如何像在JSF中的EL表达式一样访问GSP中的bean?
例如,给定一个这样的域类:
class TestBean {
def name = "hello"
}
Run Code Online (Sandbox Code Playgroud)
在spring/resources.groovy:
test(mydomain.TestBean) { bean -> bean.scope = 'session' }
Run Code Online (Sandbox Code Playgroud)
在UrlMapping.groovy中:
'/test'(view:'/test')
Run Code Online (Sandbox Code Playgroud)
然后,在views/test.gsp中:
${test.name}
Run Code Online (Sandbox Code Playgroud)
但是上面的代码会引发异常,因为$ {test}为null.那么,如何在没有控制器的情况下在GSP中访问TestBean?
我正在使用Grails 2.2.谢谢!
我使用Grails 2.2.2和GGTS 3.3M1.当我运行我的应用程序(grails run-app)并在groovy文件中更改某些内容时,Grails会重新编译该文件.在此过程中会发生以下错误输出:
| Error Unexpected problem clearing ThreadGroupContext beaninfo:
| Error java.lang.ClassCastException: java.beans.WeakIdentityMap cannot be cast to java.util.Map
| Error at org.springsource.loaded.agent.JVMPlugin.reloadEvent(JVMPlugin.java:77)
| Error at org.springsource.loaded.TypeRegistry.fireReloadEvent(TypeRegistry.java:1594)
| Error at org.springsource.loaded.ReloadableType.loadNewVersion(ReloadableType.java:396)
| Error at org.springsource.loaded.TypeRegistry.loadNewVersion(TypeRegistry.java:805)
| Error at org.springsource.loaded.agent.ReloadableFileChangeListener.fileChanged(ReloadableFileChangeListener.java:51)
| Error at org.springsource.loaded.agent.Watcher.determineChangesSince(FileSystemWatcher.java:218)
| Error at org.springsource.loaded.agent.Watcher.run(FileSystemWatcher.java:205)
| Error at java.lang.Thread.run(Thread.java:722)
Reloading: JVMPlugin: warning: unable to clear BEANINFO_CACHE, cant find field
Run Code Online (Sandbox Code Playgroud)
编译似乎工作正常,但错误仍然发生.
我刚刚在刚开始从事的项目上创建了一个新的grails域类。我知道数据源设置正确,因为我们已经有很多域类可以很好地更新到数据库了。
我得到的错误:
Caused by BatchUpdateException: ORA-00942: table or view does not exist
Run Code Online (Sandbox Code Playgroud)
我尝试运行DBMUpdate,但是也没有创建表。
创建域类时我缺少什么?我需要更改变更日志中的某些内容吗?任何建议将是有帮助的!
我在jenkins上为一个项目定义了几个环境变量,其中我想将其中一些变量合并到构建成功前后发送的电子邮件通知中。
但是groovy.text.Template似乎不接受这些环境变量。
我还使用了“将环境变量注入到构建过程的功能帮助:将环境变量注入到构建过程”,并按如下方式定义了我的变量
BUILD_NAME=${BUILD_NAME}
Run Code Online (Sandbox Code Playgroud)
BUILD_NAME我执行构建时在哪里被接受为参数。
请有人可以帮我这个忙。
我在config.groovy中写下面给出的代码
grails.plugins.springsecurity.providerNames = [
'rememberMeAuthenticationProvider'
]
grails.plugin.springsecurity.rememberMe.cookieName='grails_remember_me'
grails.plugin.springsecurity.rememberMe.alwaysRemember=false
grails.plugin.springsecurity.rememberMe.tokenValiditySeconds=31*24*60*60
grails.plugin.springsecurity.rememberMe.parameter='_spring_security_remember_me'
grails.plugin.springsecurity.rememberMe.key='monitoringApp'
grails.plugin.springsecurity.rememberMe.useSecureCookie=false
grails.plugin.springsecurity.rememberMe.persistent=false
grails.plugin.databasemigration.updateOnStart = true
Run Code Online (Sandbox Code Playgroud)
我在我的gsp页面上写下面给出的代码
<div class="col-xs-7">
<div class="checkbox">
<label>
<input type='checkbox' name='_spring_security_remember_me' id='remember_me'
<g:if test='${hasCookie}'>checked='checked'</g:if>/>
<g:message code="springSecurity.login.remember.me.label"/>
</label>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我的控制器所有动作都使用弹簧安全完全认证@Secured(['IS_AUTHENTICATED_FULLY'])但我无法使用弹簧安全的 好处记住我的功能.请帮助我.
我正在使用grails版本2.3.0和spring security:"spring-security-core:2.0-RC2"
我有以下2个groovy片段,应该做同样但但他们没有.
try {
throw new RuntimeException()
} catch (IllegalStateException) {
println("hello!")
}
Run Code Online (Sandbox Code Playgroud)
这个输出 'hello!'
try {
throw new RuntimeException()
} catch (IllegalStateException e) {
println("hello!")
}
Run Code Online (Sandbox Code Playgroud)
而这个输出是一个意外的例外:
Caught: java.lang.RuntimeException
java.lang.RuntimeException
at 2.run(2.groovy:2)
Run Code Online (Sandbox Code Playgroud)
请注意唯一的区别是,在一个片段e中,catch块中没有参数.
我正在运行以下版本的groovy和JVM.
groovy --version
Groovy Version: 2.0.5 JVM: 1.6.0_37 Vendor: Sun Microsystems Inc. OS: Linux
这是预期的行为还是编译器中的错误?谢谢
grails ×5
groovy ×5
benchmarking ×1
exception ×1
grails-2.0 ×1
grails-orm ×1
gsp ×1
hibernate ×1
java ×1
jenkins ×1
oracle ×1
regex ×1
spring ×1
string ×1