矢量字符串替换朱莉娅

时间:2017-04-05 16:35:17

标签: arrays string julia

我希望找到包含 @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); View something = findViewById(R.id.something); something.setOnClickListener(new View.OnClickListener() { ... }); // NPE HERE if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()).commit(); } } 的{​​{1}}元素,并将x替换为“”。

"X"

使用"X"循环我可以:

v = split("a b c d e f g h i j k l m n o p X")
x = rand(v,100) .* rand(v,100) .* rand(v,100)

这是如何在Julia中完成字符串向量操作的吗?或者我应该使用的forfor i=1:length(x) x[i] = replace(x[i], "X", "") end .replace(R中使用的)一组函数是什么?

2 个答案:

答案 0 :(得分:2)

使用for循环或理解是一个很好的解决方案,通常是一个非常高效的解决方案。 Julia中的循环很快,因此您不必担心为了使其快速而对代码进行矢量化。也就是说,在即将发布的0.6版本中,您可以在Julia using dot-broadcasting中编写快速矢量化代码,因为字符串现在被视为广播中的标量元素:

julia> replace.(x, "X", "")
100-element Array{String,1}:
 "lod"
 "kk"
 "eco"
 "jac"
 ⋮
 "ojn"
 "hmc"
 "pb"

您可以使用以下方式进行以下操作:

x .= replace.(x, "X", "")

答案 1 :(得分:1)

你可以这样做

@Rule @JvmField
val activityRule: IntentsTestRule<MainActivity> =
        object : IntentsTestRule<MainActivity>(MainActivity::class.java, true, false) {
            override fun beforeActivityLaunched() {
                super.beforeActivityLaunched()
                Intents.init()
                intending(hasComponent(LaunchedFromOnCreateActivity::class.java.name)).respondWith(Instrumentation.ActivityResult(RESULT_OK, null))
            }
            override fun afterActivityLaunched() {
                Intents.release()
                super.afterActivityLaunched()
            }
        }

但正如 Stefan 在评论中指出的那样,它会创建一个新的向量。 正确的方法应该是(由 Matt 解释)

[replace(i,"X","") for i in x]

只是快速回顾一下替换功能,这是朱莉娅官方文档所说的。

x .= replace.(x, "X", "")