小编MxL*_*evs的帖子

在某处存储字符串然后立即写出来

我读到文件I/O很慢,并且正在查看写入文件的我自己的代码,发现即使对于像逗号一样的小东西,我也经常调用write write write.

outFile.write(",")

所以我想,如果我把所有的角色存放在某个地方(比如,我不知道,1 KB的字符或其他东西在写出之前),也许会更好.

我该如何实现呢?我只是获取一个列表并开始向其附加字符串,然后进行连接并将结果字符串写出来吗?或者可能有一个更好的方法.

python

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

在ruby中收集数组的哈希值

h = {1=>[1,2,3], 2=>[4,5,6]}
new_arr = []
h.each_value {|arr|
  new_arr.concat(arr)
}

这有效,但是更像红宝石的方式呢?

所有值都是数组,但不应修改每个数组的元素.

ruby hash

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

Ruby:像一个数字一样对待一个类?

我想在做数学时将罗马数字与阿拉伯数字混合.

我会为每个符号定义一些类

class I
end

class V
end

class X
end

现在我希望能够说出类似的话

5 + V   # results in 10
X + 12  # results in 22

但我不知道从哪里开始.
我必须定义一个方法,告诉ruby如何5 + V工作,给每个类一个值,当我说

I

我应该得到值1.

我应该采用什么样的方法让我将其X视为10号?

ruby

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

C# 用 n 个字节填充字符串并将其写出

我正在使用BinaryWriter.
现在我写出一个将被填充到 256 个字节的字符串,用空字节来弥补剩余的空间(例如:字符串“hello world”占用 11 个字节,所以我需要再写 245 个空字节) .

当前的方法是正常写出字符串,计算字符串的长度并将其从 256 中减去以获得所需的空字节数,然后使用 for 循环写出所有这些空值。

但也许最好先构建我的空填充字符串,然后一次性写出它。如何用空字节填充我的字符串到 n 的长度?

我猜他们会是空字符而不是空字节。

c#

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

检查方法是否在*this*类中定义

我有以下代码.它实际上是三个独立的脚本,除了我把它们组合在一起 该Main班是东西两个Test类继承.他们可以定义一个out方法,它将完成开发人员想要的任何事情.这是一种插件风格的设计,以便人们可以out在自己的类中定义自己的方法,然后当我的主程序选择其中一个自定义类时,我可以说

some_test.run

如果他们决定实施一个out将要执行的方法.

有没有更好的方法来实现该run方法,以便我不需要显式写self.class.method_defined??该对象可以是任何Test对象,我不希望他们必须覆盖该run方法以将自己的类名放在method_defined?调用之前.

class Main
  def run
    send(:out) if self.class.method_defined?(:out)
  end
end

class TestA < Main

  def out
    p "Test A here"
  end
end

class TestB < Main

  def out
    p "Test B here"
  end
end

a = TestA.new
a.run
# will execute a's out method

b = TestB.new
b.run
# will execute b's out method
Run Code Online (Sandbox Code Playgroud)

ruby

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

将元素i转换为数组中的j

给定一个数组:

a = [1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

我想旋转的元素i,通过j在某些方向n倍.所以,例如:

i = 2
j = 3
n = 1
Run Code Online (Sandbox Code Playgroud)

旋转a会产生:

new_a = [1, 2, 4, 3, 5, 6]
Run Code Online (Sandbox Code Playgroud)

这就是我所拥有的:

def rotate_sub(a, i, j, n)
  return a[0...i] + a[i..j].rotate(n) + a[j+1..-1]
end
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?由于没有绑定检查,i或者j很可能超出数组的范围.

ruby

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

将String转换为Regex字符串

如何将字符串转换为正则表达式字符串,正确转义所有正则表达式特定字符?我正在使用插值来构建正则表达式字符串,以允许用户自定义正则表达式而无需触摸代码(或期望他们知道正则表达式)

custom_text = "Hello"    
my_regex = /#{custom_text}:\s*(\d+)/i
Run Code Online (Sandbox Code Playgroud)

当我的代码使用它时,会产生以下正则表达式

/Hello:\s*(\d+)/i
Run Code Online (Sandbox Code Playgroud)

这允许用户可能提供语言本地化,而不必担心弄清楚我的正则表达式的使用位置,使用方式,或者如果他们改变了某些内容,他们是否会破坏脚本.

然而,如果他们想要包括像句子或问号这样的东西Hello?,我可能需要先逃避它们.

ruby regex

0
推荐指数
1
解决办法
1649
查看次数

将JSON列表转换为php数组

我将页面中的数字列表传递给JSON中序列化的PHP

{"items":"[1,2,3,4]"}
Run Code Online (Sandbox Code Playgroud)

在我的网址中它只是

...&items={"items":[1,2,3,4]}
Run Code Online (Sandbox Code Playgroud)

我用PHP解码了这个

$json = $_GET["items"];
$arr = json_decode($json, true);
Run Code Online (Sandbox Code Playgroud)

我得到一个阵列

Array ( [items] => [1,2,4] )
Run Code Online (Sandbox Code Playgroud)

但是当我尝试foreach打开arr["items"]并打印出每个值时,我得到的只是一个值

[1,2,4]
Run Code Online (Sandbox Code Playgroud)

这是我用来迭代的代码

foreach($res["items"] as $value)
    echo $value; 
Run Code Online (Sandbox Code Playgroud)

为什么我没有得到类似的东西

1
2
4
Run Code Online (Sandbox Code Playgroud)

php json

0
推荐指数
1
解决办法
3342
查看次数

查询"喜欢'%%'"的目的是什么?

我有一个应用程序在其中一个查询中具有以下WHERE子句.

WHERE objId = 5 AND ( field1 like '%%' OR field2 like '%%' OR field3 like '%%')
Run Code Online (Sandbox Code Playgroud)

使用MySQL的EXPLAIN 函数,它似乎没有寻找超过必要的行(幸运的是,objId过滤掉了很多行的索引),但检查字段是否相似的重点是%%什么?

mysql sql

0
推荐指数
2
解决办法
80
查看次数

Java是否将0xA0读为0xFFFD

我的一个数据处理模块在读取ANSI输入时崩溃了.使用十六进制查看器查看有问题的字符串,0xA0结尾处有一个神秘的字节.

结果证明这是一个不间断的空间.

我试过替换它:

String s = s.replace("\u00A0", "");
Run Code Online (Sandbox Code Playgroud)

但它没有用.

然后我去打印出该角色正在使用的内容charAt和Java报告

65533
Run Code Online (Sandbox Code Playgroud)

要么 0xFFFD

将其插入替换代码中,我终于摆脱了它!

但为什么我0xA0在文件中看到了一个,但是Java将其读作0xFFFD

BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream(path), "UTF-8"));
 String line = r.readLine();
 while (line != null){
     // do stuff
     line = r.readLine();
  }
Run Code Online (Sandbox Code Playgroud)

java

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

标签 统计

ruby ×5

c# ×1

hash ×1

java ×1

json ×1

mysql ×1

php ×1

python ×1

regex ×1

sql ×1