小编Yog*_*hat的帖子

如何使用shell计算String中的单词数

我想使用Shell计算String中的单词数.

假设String是:

input="Count from this String"
Run Code Online (Sandbox Code Playgroud)

这里的分隔符是空格' ',预期输出是4.输入字符串中也可以有尾随空格字符"Count from this String ".

如果String中有尾随空格,它应该产生相同的输出,即4.我该怎么做?

bash

35
推荐指数
5
解决办法
7万
查看次数

即使将"Float Column Footer"设置为true,细节和列页脚带之间也会出现间隙

我正在创建一个显示某些人名的碧玉报告.我需要在底部的列表中显示人数.

我面临的问题是我在人员名单和"候选人总数"这个标签之间有一个小的差距.

如需参考,请查看以下图片:
在红色框中标记的差距

最初,列页脚显示在页面末尾,留下了很大的差距.然后我发现很少有好的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)

jasper-reports

6
推荐指数
1
解决办法
2985
查看次数

将输入流读取到缓冲区的最佳方法

要将任何输入流读取到缓冲区,有两种方法。有人可以帮助我了解哪种方法更好以及为什么?每种方法应该在什么情况下使用?

  • 逐行读取并将其附加到缓冲区。

例如:

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)
  • 读取最大缓冲区大小,即 char 数组中的 1024 字节。

例如:

InputStreamReader isr = new InputStreamReader(is);
final int bufferSize …
Run Code Online (Sandbox Code Playgroud)

java io file-io

5
推荐指数
1
解决办法
3万
查看次数

如何检查EDT(事件调度线程)是否已完成在Java中调度事件

在我的工具中,我记录了从用户应用程序生成的事件.现在,用户可以使用我的工具重播他的场景.

在重放用户录制的场景时,我使用以下命令逐个将录制的事件发布到"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(),在大多数情况下,即使用户的文件打开操作完成,我也会浪费一些执行时间.

java events swing awt event-dispatch-thread

5
推荐指数
1
解决办法
1331
查看次数

java中本地对象的内存管理

如果我在一个类中有一个方法,并且我在该方法中创建了一个对象,那么该方法完成后会破坏该对象并释放分配给它的内存吗?

例如. -

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,因为它是一个本地对象.我对吗?

java garbage-collection memory-management

4
推荐指数
1
解决办法
2533
查看次数