我有一个类似下面的html" target="_blank">字符串行:
A:B:C:D:E:F:G:H:I:J:K:L:M
这意味着定界符(:)的计数为12。这行是有效的。
现在假设您有以下一行:
A:B:C:D:E:F:G:H :::::
这行也是有效的,因为它包含12个定界符。其中存在8个值,而4个值为空白。
现在,以下行应该无效:
A:B:C:D:E:F:-无效-因为它仅包含6个值,但预期为12个。
这该怎么做 .. ?我尝试了以下代码,但未获得所需的输出:
String strLine = "A:B:C:D:E:F:G:H:::::" ;
int delimiterCount = 12 ;
String[] ValuesArray = strLine.split(":");
if(ValuesArray.length != delimiterCounter){
System.out.println(Invalid);
}else {
System.out.println("ValidLine");
}
我将输出视为无效,因为它应该是有效的。
如果您要使用split
,并且确实不是一个坏方法(尽管可能适用于此特定情况),则需要将-1作为第二个参数传递,split
否则它将删除空字符串。
参见http://ideone.com/gaUw5。
很高兴知道这一点split
。有些语言要求-1,有些则不需要。
代码
class Main {
public static void main(String[] args) {
String line = "A:B:C:D:E:F:G:H:::::" ;
int delimiterCount = 12 ;
String[] values = line.split(":", -1);
if (values.length != delimiterCount + 1) {
System.out.println("Invalid Line");
} else {
System.out.println("Valid Line");
}
}
}
问题内容: 如何计算特定字符串在另一个字符串中出现的次数。例如,这就是我要使用Javascript进行的操作: 问题答案: 在正则表达式(简称 全球 )说,搜索整个字符串,而不是只要找到第一次出现。这匹配两次: 并且,如果没有匹配项,则返回:
问题内容: 需要一些紧凑的代码来计算Java中字符串的行数。该字符串用或分隔。这些换行符的每个实例将被视为一个单独的行。例如 - 应该返回4。原型是 有人可以提供一组紧凑的陈述吗?我想在这里有一个解决方案,但是它太长了。谢谢。 问题答案:
问题内容: 我需要编写某种循环,可以计算字符串中每个字母的频率。 例如:“ aasjjikkk”将计为2’a’,1’s’,2’j’,1’i’,3’k’。最终,像这样的id最终以字符为键,而count为值的形式出现在地图中。有什么好主意怎么做? 问题答案: 你可以使用Java Map并将a映射到。然后,你可以遍历字符串中的字符,并检查是否已将它们添加到地图中(如果有),然后可以增加其值。 例如: 最
我想在拆分函数调用中使用空格作为分隔符,但我想在单个单元格数组中输入某些单词;例如。 例如: 在带有一些分隔符的函数拆分调用之后,输出应如下所示: 我需要找到一个分隔符(或正则表达式模式)用于split函数。我如何着手做那件事?
问题内容: 我需要在数据库中填充纬度和经度列,但是原始信息存储为单个字符串 例如。 我猜想TRIM命令在这里很有用,但是我不知道如何告诉它每半个部分都精确地停在逗号上。 我希望能够提出一个简单的UPDATE查询,如下所示: 但是显然在LTRIM和RTRIM部分中需要做一些额外的工作,因此我只选择数据,但不包括UDFChar1中的逗号。 关于如何实现这一目标的任何想法? 问题答案: 请试试: 和 样
问题内容: 欲分割为4的阵列,以利用 这是我的代码: 但是,结果标记是一个空数组:[],而不是 我想要的4数组。 我已经测试过更改一点: 这次的结果标记为。这与我想要的接近,但是我真的不想在拆分之前添加此“ 1”。 问题基本上是,如果它仅包含空元素,它将返回一个空数组。 您能帮助解决问题吗? 问题答案: 您需要使用带有limit参数的重载方法。 从文档(重点是我的): limit参数控制应用图案的