小编and*_*sel的帖子

在Ruby中将字符串切割成给定长度的块的最佳方法是什么?

我一直在寻找一种优雅而有效的方法,将一个字符串块化为Ruby中给定长度的子字符串.

到目前为止,我能想到的最好的是:

def chunk(string, size)
  (0..(string.length-1)/size).map{|i|string[i*size,size]}
end

>> chunk("abcdef",3)
=> ["abc", "def"]
>> chunk("abcde",3)
=> ["abc", "de"]
>> chunk("abc",3)
=> ["abc"]
>> chunk("ab",3)
=> ["ab"]
>> chunk("",3)
=> []
Run Code Online (Sandbox Code Playgroud)

您可能想要chunk("", n)返回[""]而不是[].如果是这样,只需将其添加为方法的第一行:

return [""] if string.empty?
Run Code Online (Sandbox Code Playgroud)

你会推荐更好的解决方案吗?

编辑

感谢Jeremy Ruten提供的优雅高效的解决方案:

def chunk(string, size)
    string.scan(/.{1,#{size}}/)
end
Run Code Online (Sandbox Code Playgroud)

ruby string chunking

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

如何解决Groovy的XmlSlurper由于DOCTYPE和DTD限制而拒绝解析HTML?

我正在尝试复制HTML覆盖率报告中的元素,因此覆盖总计显示在报告的顶部以及底部.

因此HTML开始,我认为格式良好:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <link rel="stylesheet" href=".resources/report.css" type="text/css" />
    <link rel="shortcut icon" href=".resources/report.gif" type="image/gif" />
    <title>Unified coverage</title>
    <script type="text/javascript" src=".resources/sort.js"></script>
  </head>
  <body onload="initialSort(['breadcrumb', 'coveragetable'])">
Run Code Online (Sandbox Code Playgroud)

Groovy的XmlSlurper抱怨如下:

doc = new XmlSlurper( /* false, false, false */ ).parse("index.html")
[Fatal Error] index.html:1:48: DOCTYPE is disallowed when the feature "http://apache.org/xml/features/disallow-doctype-decl" set to true.
DOCTYPE is disallowed when the feature "http://apache.org/xml/features/disallow-doctype-decl" set to true.
Run Code Online (Sandbox Code Playgroud)

启用DOCTYPE:

doc = new …
Run Code Online (Sandbox Code Playgroud)

html groovy xmlslurper

20
推荐指数
2
解决办法
9158
查看次数

获取Kotlin中的函数名称

更新

如何获取当前正在执行的函数名Kotlin

我正在尝试获取当前正在执行的函数的函数名称,如下所示,但它始终为null

val funName = Object().`class`.enclosingMethod?.name;
Run Code Online (Sandbox Code Playgroud)

android kotlin

16
推荐指数
2
解决办法
5184
查看次数

如何检测Android x86何时模拟ARM?

我有一个在大多数Android设备上运行良好的JNI库 - ARMv5,ARMv7和x86.

我在ARMv7上使用NEON指令,但是我没有使用条件/复制源来混淆代码,而是希望在库加载时检测Java中的非NEON ARMv7,而是加载v5库:慢CPU很慢.

我找到了一篇帖子,建议我在/ proc/cpuinfo中寻找'neon'功能,所以我正在解析它,并且通常加载libthing.so,或者如果设备声称是没有NEON的ARMv7,则加载libthing-v5.so .这在ARM上运行良好.

不幸的是,不仅x86模拟ARM/proc/cpuinfo(!),如果它决定它不理解NEON,那么它也会从armeabiv7a目录中挖掘出libthing-v5.so,并使用它因为没有一个在x86目录中.

我目前的解决方法是将x86库复制到libthing.so和libthing-v5.so,所以如果x86假装是一个没有NEON的ARMv7芯片,那么无论如何它都会得到x86库.

除了基于Yeppp或Android自己的cpufeatures编写我自己的小型独立架构检测库之外,有没有办法从Java确定真正的本地架构?


@ ph0b:这里是Razr i的输出,显示模拟器已经确定应用程序已经安装为'ABI2 58',并且它需要假冒/ proc/cpuinfo.

鉴于两个共享库都可以从x86以及armeabi*目录获得,我不明白为什么设备决定成为ARM.我可能会问我在英特尔的联系.

06-05 10:58:41.360 17807 18053 D dalvikvm: Trying to load lib /data/data/com.company.android/lib/libmp.so 0x42409cb0
06-05 10:58:41.360 17807 18053 D dalvikvm: Added shared lib /data/data/com.company.android/lib/libmp.so 0x42409cb0
06-05 10:58:41.370 17807 18053 D dalvikvm: No JNI_OnLoad found in /data/data/com.company.android/lib/libmp.so 0x42409cb0, skipping init
06-05 10:58:41.420 17807 18053 D         : Searching package installed with ABI2 with Uid: 10109 
06-05 10:58:41.420 17807 18053 D         : Apps with ABI2 58 accessing /proc/cpuinfo …
Run Code Online (Sandbox Code Playgroud)

x86 arm android-ndk

9
推荐指数
1
解决办法
5087
查看次数

在Eclipse上将log4j.properties放在java gradle web应用程序中的位置

我正在使用Gradle制作一个简单的Web应用程序.我使用slf4j和log4j作为记录器,我使用gradle.build文件添加3个罐子来使用slf4j.我经历了一些gradle和slf4j教程,但仍然无法找到并回答将log4j.properties放在gradle项目中的位置.任何身体可以帮助我吗?

log4j slf4j gradle

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

javadoc 是 html 还是 xhtml?

我今天早上在 IntelliJ 中输入了一些 Javadoc 并使用了一个 <br> 标签,IntelliJ 以通常有用的方式自动完成了 <br>|</br> ......但我的印象是 <br> 已定义不是容器:

http://www.washington.edu/accessit/webdesign/student/unit2/common_tags.htm说:

一些标签被称为非容器标签,因为它们不包含任何内容——它们是独立的。例如图像和换行符。XHTML 要求必须关闭所有打开的标签,即使它们不是容器标签。因此,非容器标签以 /> 结尾。例如,换行符的标签是 <br />。

那么是 Javadoc HTML 还是 XHTML?在我看来,IntelliJ 应该完成 <br> 到 <br /> 或不理会它。

html xhtml javadoc

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

如何为jank和frames触发最新的Android Systrace命令标记?

最新的Android Systrace页面 - http://developer.android.com/tools/debugging/systrace.html#options-4.3 - 显示'警报'和'框架'跟踪线,其中包含发生不良事件的圆圈.

尽管看到很多jank,我还是无法使用这些标记创建trace.html文件.

有谁知道谷歌可能用来创建他们截获的页面的命令?遗憾的是,他们没有提供它.

android systrace

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

Android 8 - 如何通过ADB设置模拟器区域设置?

到目前为止,我一直在设置具有'persist'属性的语言环境,但在Android 8模拟器上,我得到了这个:

setprop: failed to set property 'persist.sys.language' to 'en'
setprop: failed to set property 'persist.sys.country' to 'GB'
setprop: failed to set property 'ctl.restart' to 'zygote'
Run Code Online (Sandbox Code Playgroud)

我试着设置ro.与语言环境相关的属性,但令人惊讶的是它们仍然是"ro".

有谁知道Android 8的新方式?

android locale adb android-8.0-oreo

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

如果源脚本在函数中运行,为什么 bash 变量不是全局变量?

通常从另一个脚本获取文件,我可以访问它的变量。

如果我从函数中获取脚本,则其变量不是全局变量,这似乎与联机帮助页相矛盾:

FUNCTION 函数的局部变量可以用 local 内置命令声明。通常,变量及其值在函数及其调用者之间共享。

source filename [arguments]在当前 shell 环境中从 filename 读取和执行命令

发生在我所有方便可用的版本中:3.2.57(1)-release (x86_64-apple-darwin17)、4.3.42(1)-release (x86_64-suse-linux-gnu) 和 4.3.48(1) -发布 (x86_64-pc-linux-gnu)

测试sourced.sh:

#!/bin/bash
echo $BASH_SOURCE $$ $SHLVL
declare -x FOO=bar
foo() { echo funfoo=$FOO $$ $SHLVL ; }
Run Code Online (Sandbox Code Playgroud)

测试top.sh:

#!/bin/bash
echo $BASH_SOURCE $$ $SHLVL

funcsource () { source ./test-sourced.sh ; }
echo ==== funcsource...
funcsource
echo foo=$FOO
foo

echo ==== source...
source ./test-sourced.sh
echo foo=$FOO
foo
Run Code Online (Sandbox Code Playgroud)

我看到了这个输出,但希望看到 funcsource 和 source 做同样的事情:

$ ./test-top.sh 
./test-top.sh 1234 2
==== …
Run Code Online (Sandbox Code Playgroud)

bash scope

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

更改方向更改时的片段布局

我有以下问题:

我有一个在其中一个标签TabActivity中显示的内容FragmentActivity.

FragmentActivity增加了一个ListFragment,当点击其中的项目时,ListFragment会添加一个片段(也会添加到后台)并显示.

现在我需要改变它的布局,Fragment以便在转向横向时更改.

但我完全无能为力地实施这一改变.我已经创建了在layout-land文件夹中更正布局.但设置它的正确点在哪里?

android android-layout android-fragments

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