- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想在每次出现 alpha-beta 字符时拆分我的字符串。
例如:
"s1l1e13"
到一个数组:["s1","l1","e13"]
当尝试使用正则表达式进行简单拆分时,我得到了一些奇怪的结果:
testStr = "s1l1e13"
Arrays.toString(testStr.split("(?=[a-z])"))
给我数组:
["","s1","l1","e13"]
如何在没有空数组元素的情况下创建拆分?
我尝试了更多的东西:
testStr = "s1"
Arrays.toString(testStr.split("(?=[a-z])"))
返回当前数组:["s1"]
但是当尝试使用子字符串时
testStr = "s1l1e13"
Arrays.toString(testStr.substring(1).split("(?=[a-z])")
我得到返回 ["1","l1","e13"]
我错过了什么?
最佳答案
Lookahead 标记了 a
到 z
任何字符之前的每个位置;标记以下位置:
s1 l1 e13
^ ^ ^
因此,通过仅使用 Lookahead 进行拆分
,它返回 ["", "s1", "l1", "e13"]
您可以在此处使用Negative Lookbehind。这向后看是否有不是字符串的开头。
String s = "s1l1e13";
String[] parts = s.split("(?<!\\A)(?=[a-z])");
System.out.println(Arrays.toString(parts)); //=> [s1, l1, e13]
关于Java按alphabeta char拆分在数组中创建一个空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23996609/
我正在尝试用Python编写一个国际象棋引擎,我可以找到给定位置的最佳移动,但我正在努力收集该位置的主要变化,以下是我迄今为止尝试过的: def alphabeta(board, alpha, bet
我用自己的旧国际象棋引擎体验过 AlphaBeta 算法,现在我正在尝试编写新引擎,我看到该算法遇到 beta 截止,但在我看来,如果我不使用 narrowed,这永远不会发生 window 。我错了
下面是我正在制作的计算器 Android 应用程序的代码: package com.example.calculator; import java.text.DecimalFormat; import
试图找到最佳着法和分数。我已经让我的程序正确返回游戏分数,但我希望它也返回移动。我如何更改我的代码以使其执行此操作?类似于 this和 this .查看我的失败代码 here ,如果游戏结束返回的 N
我是一名优秀的程序员,十分优秀!