小编Dav*_*sry的帖子

Groovy 重命名文件

我正在尝试使用 Groovy 重命名目录中的文件,但我似乎无法理解它是如何工作的。

这是我的脚本:

import groovy.io.FileType

def dir = new File("C:/Users/????/Downloads/Busta_Rhymes-Genesis-(Retail)-2001-HHI")

def replace = {
    if (it == '_') {
        ' '
    }
}

String empty = ""

dir.eachFile (FileType.FILES) { file ->
    String newName = file.name
    newName = newName.replaceAll(~/Busta_Rhymes/, "$empty")
    newName = newName.replaceAll(~/feat/, "ft")
    newName = newName.replaceAll(~/-HHI/, "$empty")
    newName = newName.replaceAll(~/--/, "-")

    newName = newName.collectReplacements(replace)

    file.renameTo newName

    println file.name
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,文件的名称没有按预期更改。我想知道我怎么能让这个工作。

io groovy file file-rename

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

将字符串映射到 ASCII 表中位置的整数

我有一个像这样的字符串:

word = 'python'
Run Code Online (Sandbox Code Playgroud)

基于string.ascii_lowercase,我想创建一个新数组,如下所示:

[15, 24, 19, 7, 14, 13]
Run Code Online (Sandbox Code Playgroud)

我对这个问题的解决方案是执行以下操作:

alphabet = {char: i for i, char in enumerate(string.ascii_lowercase)}
indices = [alphabet[char] for char in word]
print(indices)
Run Code Online (Sandbox Code Playgroud)

输出:[15, 24, 19, 7, 14, 13]

但我正在寻找一种更有效的方法,而不使用循环。我怎样才能以矢量化的方式做到这一点?

python string unicode numpy vectorization

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

TextInputLayout作为文本区域 - Android

我正试图在我的应用程序中创建这样的东西(取自谷歌文档):

在此输入图像描述

在此输入图像描述

现在,我尝试创建一个TextInputLayout元素并尝试在其周围放置边框,但我无法让它看起来像我发布的图像.

这是我的代码TextInputLayout:

<android.support.design.widget.TextInputLayout
        android:id="@+id/shipper_layout"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="8dp"
        android:background="@drawable/text_layout_stroke_normal"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp">

        <EditText
            android:id="@+id/shipper_field"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:padding="15dp"
            android:background="@null"
            android:gravity="top"
            android:hint="@string/shipper_field"
            android:inputType="textMultiLine"
            android:overScrollMode="always"
            android:scrollbarStyle="insideInset"
            android:scrollbars="vertical" />
    </android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

以下是它的外观:(关注之前)

在此输入图像描述

在此输入图像描述

您可以看到边框未按预期更改,并且提示只是最小化

android android-edittext

2
推荐指数
3
解决办法
4259
查看次数

PDFBox文档到InputStream

我正在尝试获取一个PDDocument对象并将其传递给其他模块,InputStream而不将文档保存到文件系统.

现在,我读到PDStream并且有点了解这个的目的.因此,我尝试做这样的事情:

PDStream stream = new PDStream(document);

InputStream is = stream.createInputStream();
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将输入流加载到a中时PDDocument,我收到此错误:

Exception in thread "main" java.io.IOException: Error: End-of-File, expected line
    at org.apache.pdfbox.pdfparser.BaseParser.readLine(BaseParser.java:1111)
    at org.apache.pdfbox.pdfparser.COSParser.parseHeader(COSParser.java:1885)
    at org.apache.pdfbox.pdfparser.COSParser.parsePDFHeader(COSParser.java:1868)
    at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:245)
    at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1098)
    at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:995)
    at app.DGDCreator.main(DGDCreator.java:35)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:143)
Run Code Online (Sandbox Code Playgroud)

后来我发现结果文件大小为0kb ...

java inputstream pdfbox

1
推荐指数
2
解决办法
7189
查看次数

Groovy获取某个索引下的列表中的所有元素

我想收集特定索引下特定数组列表中的所有元素.假设我有这个清单:

def names = ["David", "Arthur", "Tommy", "Jacob"]
Run Code Online (Sandbox Code Playgroud)

我想打印索引2下的所有名字,在这种情况下,将打印"大卫,亚瑟"

现在我可以很容易地使用for循环,甚至是groovy eachWithIndex().问题是我不想遍历所有元素,因为这样做效率不高.而不是那样,我想要跑到特定点.

在groovy中有没有这样做的方法,因为我找不到一个.

提前致谢!

groovy list elements

0
推荐指数
3
解决办法
3366
查看次数