小编wes*_*ton的帖子

\ d效率低于[0-9]

我昨天做了评论,其中有人曾用一个答案[0123456789]正则表达式,而不是[0-9]\d.我说使用范围或数字说明符比使用字符集更有效.

我决定今天测试一下,并且我惊讶地发现(至少在C#正则表达式引擎中)\d似乎效率低于其他两个似乎没有太大差别的.这是我的10000个随机字符串1000个随机字符的测试输出,其中5077实际上包含一个数字:

Regular expression \d           took 00:00:00.2141226 result: 5077/10000
Regular expression [0-9]        took 00:00:00.1357972 result: 5077/10000  63.42 % of first
Regular expression [0123456789] took 00:00:00.1388997 result: 5077/10000  64.87 % of first
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是有两个原因:

  1. 我原以为该范围的实施要比套装更有效.
  2. 我无法理解为什么\d会比这更糟糕[0-9].还有\d简单的简写[0-9]吗?

这是测试代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Text.RegularExpressions;

namespace SO_RegexPerformance
{
    class Program
    {
        static void Main(string[] args)
        {
            var rand = new …
Run Code Online (Sandbox Code Playgroud)

c# regex performance

1214
推荐指数
4
解决办法
8万
查看次数

是否可以为整个应用程序设置自定义字体?

我需要为我的整个应用程序使用某些字体.我有相同的.ttf文件.是否可以在应用程序启动时将其设置为默认字体,然后在应用程序的其他位置使用它?设置后,如何在布局XML中使用它?

java android android-fonts

266
推荐指数
12
解决办法
15万
查看次数

如何将文件从'assets'文件夹复制到SD卡?

我在assets文件夹中有几个文件.我需要将它们全部复制到文件夹中说/ sdcard/folder.我想从一个线程中做到这一点.我该怎么做?

android assets copy

242
推荐指数
6
解决办法
18万
查看次数

IntelliJ IDEA与Junit 4.7"!!! JUnit 3.8或更高版本预期:"

当我尝试在IntelliJ IDEA中运行以下测试时,我收到消息:

"!!! JUnit 3.8或更高版本预期:"

应该注意的是,这是我在IntelliJ IDEA 9中工作的Android项目.

public class GameScoreUtilTest {
    @Test
    public void testCalculateResults() throws Exception {
        final Game game = new Game();

        final Player player1 = new Player();
        {
            final PlayedHole playedHole = new PlayedHole();
            playedHole.setScore(1);
            game.getHoleScoreMap().put(player1, playedHole);
        }
        {
            final PlayedHole playedHole = new PlayedHole();
            playedHole.setScore(3);
            game.getHoleScoreMap().put(player1, playedHole);
        }
        final GameResults gameResults = GameScoreUtil.calculateResults(game);

        assertEquals(4, gameResults.getScore());
    }
}
Run Code Online (Sandbox Code Playgroud)

完整的堆栈跟踪看起来像这样......

!!! JUnit version 3.8 or later expected:

java.lang.RuntimeException: Stub!
    at junit.runner.BaseTestRunner.<init>(BaseTestRunner.java:5)
    at junit.textui.TestRunner.<init>(TestRunner.java:54) …
Run Code Online (Sandbox Code Playgroud)

java junit android intellij-idea

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

将String.split()与多个分隔符一起使用

我需要拆分的分隔符串基地-..以下是我想要的输出.

AA.BB-CC-DD.zip - >

AA
BB
CC
DD
zip 
Run Code Online (Sandbox Code Playgroud)

但我的以下代码不起作用.

private void getId(String pdfName){
    String[]tokens = pdfName.split("-\\.");
}
Run Code Online (Sandbox Code Playgroud)

java regex

188
推荐指数
7
解决办法
32万
查看次数

如何以编程方式调整自定义视图的大小?

我正在编写一个自定义视图,从RelativeLayout扩展,我想以编程方式调整它,我该怎么办?

自定义视图类是这样的:

public ActiveSlideView(Context context, AttributeSet attr){
        super(context, attr);
        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        if(inflater != null){       
            inflater.inflate(R.layout.active_slide, this);
        }
Run Code Online (Sandbox Code Playgroud)

android resize

158
推荐指数
9
解决办法
23万
查看次数

获得视图的边距

如何从活动中获取视图的边距值?视图可以是任何类型.

经过一些搜索后,我找到了获取视图填充的方法,但在边距上找不到任何内容.有人可以帮忙吗?

我试过这样的事,

ViewGroup.LayoutParams vlp = view.getLayoutParams();
int marginBottom = ((LinearLayout.LayoutParams) vlp).bottomMargin;
Run Code Online (Sandbox Code Playgroud)

这是有效的,但在上面的代码中我假设视图是一个LinearLayout.但margin即使我不知道视图类型,我也需要获取属性.

android android-layout android-view

93
推荐指数
3
解决办法
6万
查看次数

生成字母表中的字母数组

有没有一种简单的方法来生成包含C#中字母表字母的数组?手动完成它并不难,但我想知道是否有内置的方法来做到这一点.

c# alphabet

84
推荐指数
10
解决办法
14万
查看次数

以编程方式设置可绘制大小

图像(图标)的大小大致相同,但我需要调整它们的大小,以使按钮保持相同的高度.

我该怎么做呢?

Button button = new Button(this);
button.setText(apiEventObject.getTitle());
button.setOnClickListener(listener);

/*
 * set clickable id of button to actual event id
 */
int id = Integer.parseInt(apiEventObject.getId());
button.setId(id);

button.setLayoutParams(new LayoutParams(
        android.view.ViewGroup.LayoutParams.FILL_PARENT,
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT));

Drawable drawable = LoadImageFromWebOperations(apiSizeObject.getSmall());
//?resize drawable here? drawable.setBounds(50, 50, 50, 50);
button.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null);
Run Code Online (Sandbox Code Playgroud)

java android

81
推荐指数
6
解决办法
15万
查看次数

枚举字母表的最快方法

我想迭代字母表,如下所示:

foreach(char c in alphabet)
{
 //do something with letter
}
Run Code Online (Sandbox Code Playgroud)

一组字符是最好的方法吗?(感觉很讨厌)

编辑:度量标准是"实现最少的类型,同时仍然可读且健壮"

c# alphabet

70
推荐指数
4
解决办法
6万
查看次数