我想使用Shell计算String中的单词数.
假设String是:
input="Count from this String"
Run Code Online (Sandbox Code Playgroud)
这里的分隔符是空格' ',预期输出是4.输入字符串中也可以有尾随空格字符"Count from this String ".
如果String中有尾随空格,它应该产生相同的输出,即4.我该怎么做?
我正在创建一个显示某些人名的碧玉报告.我需要在底部的列表中显示人数.
我面临的问题是我在人员名单和"候选人总数"这个标签之间有一个小的差距.
最初,列页脚显示在页面末尾,留下了很大的差距.然后我发现很少有好的StackOverflow链接:
1)列页脚和摘要带的问题
2)Jasper Reports - 如何让列页脚直接出现在
建议将"Float Column Footer"设置为true的详细信息带下方.这样做之后,间隙减小了,我的列页脚几乎低于细节带.但是,如图所示,仍有一些差距,我不知道如何删除.
编辑:这是我的jrxml文件:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report1" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isFloatColumnFooter="true" uuid="b7718df8-d1d7-46e7-9a66-7d3fe24c720c">
<parameter name="ReportName" class="java.lang.String"/>
<queryString>
<![CDATA[]]>
</queryString>
<field name="firstName" class="java.lang.String">
<fieldDescription><![CDATA[firstName]]></fieldDescription>
</field>
<field name="id" class="java.lang.String">
<fieldDescription><![CDATA[id]]></fieldDescription>
</field>
<field name="lastName" class="java.lang.String">
<fieldDescription><![CDATA[lastName]]></fieldDescription>
</field>
<field name="middleName" class="java.lang.String">
<fieldDescription><![CDATA[middleName]]></fieldDescription>
</field>
<title>
<band height="42" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="555" height="42" uuid="b6eaae95-75f5-4b33-978b-8afd7f9ecfee"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="20"/>
</textElement>
<textFieldExpression><![CDATA[$P{ReportName}]]></textFieldExpression> …Run Code Online (Sandbox Code Playgroud) 要将任何输入流读取到缓冲区,有两种方法。有人可以帮助我了解哪种方法更好以及为什么?每种方法应该在什么情况下使用?
例如:
public String fileToBuffer(InputStream is, StringBuffer strBuffer) throws IOException{
StringBuffer buffer = strBuffer;
InputStreamReader isr = null;
try {
isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
buffer.append(line + "\n");
}
} finally {
if (is != null) {
is.close();
}
if (isr != null) {
isr.close();
}
}
return buffer.toString();
}
Run Code Online (Sandbox Code Playgroud)
例如:
InputStreamReader isr = new InputStreamReader(is);
final int bufferSize …Run Code Online (Sandbox Code Playgroud) 在我的工具中,我记录了从用户应用程序生成的事件.现在,用户可以使用我的工具重播他的场景.
在重放用户录制的场景时,我使用以下命令逐个将录制的事件发布到"EventQueue":
eventQueueObj.postEvent(eventObj);
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,重放用户的录制场景没有问题.
为了解释我的问题,我将举一个简短的例子.
我的工具的用户想检查在他的应用程序中,"文件"菜单下的"关闭"按钮是否有效.他的情景是:
1)单击"文件"菜单.
2)单击"打开菜单项"
3)从文件选择器中选择文件.
4)单击"文件选择器"上的"打开".
5)打开文件后,单击"文件"菜单.
6)单击"关闭菜单项".
重放步骤1到步骤4没有问题.现在在步骤5,我应该等到文件打开(文件被打开非常大并且需要一些时间).如果我不等到文件打开并向前移动,"文件"菜单下的"关闭"菜单项将保持禁用状态.因此,不会在"关闭"菜单项上触发鼠标单击事件.
我的问题是"如何从Event Dispatch Thread获取已完成当前事件处理的信息?"
在此之后,我可以点击"文件"菜单,然后点击步骤6.
我不想使用sleep()来递归检查是否启用了"关闭"菜单项.因为我只想等待所需的时间而不是一些大概的时间.
如果我使用sleep(),在大多数情况下,即使用户的文件打开操作完成,我也会浪费一些执行时间.
如果我在一个类中有一个方法,并且我在该方法中创建了一个对象,那么该方法完成后会破坏该对象并释放分配给它的内存吗?
例如. -
public void drawFigure(){
Paint paint = new Paint();
paint.setSomeProperty();
canvas.drawLine(startPoint, finishPoint, paint);
}
Run Code Online (Sandbox Code Playgroud)
那么在drawFigure方法完成后,paint对象会被销毁吗?与paint = null相同,但我不需要将它设置为null,因为它是一个本地对象.我对吗?