我从字符串标记器开始,它给我正确的结果,直到我收到上面的字符串作为输入。
此字符串的特殊之处在于,它在几个管道之间没有任何字符,例如231257
和Vikaspatil
当我试图用标记器拆分它时,它给我的标记比我预期的要少,它只是忽略了空字符,结果是我给phoneNumber分配了1257值,给RegionCode分配了InsertDaate值。
import java.util.StringTokenizer;
public class TestSpitingOfString {
public static void main(String args[]) throws Exception {
//DTO dataType|recordID|employeeid|deptID|phoneNumber|regionCode|InsertDate|StartDate|hobby|designation|age|firstName|middleName|lastName
String str = "SampleData|1111|9130|23||1257|2014-04-01 18:00:00|2014-04-12 09:00:00||Software Developer|20|Vikas||PATIL";
System.out.println("Original String -> "+str);
StringTokenizer tokenizer= new StringTokenizer(str,"|");// skips empty values between tokens
System.out.println("Words With StringTokenizer ");
while(tokenizer.hasMoreElements()){
System.out.print(tokenizer.nextToken()+",");
}
System.out.println();
String distributedWithPipe[] =str.split("|");// disaster :( it splitted every character
System.out.println("Words With String.split() distributedWithPipe character ->");
for(String split : distributedWithPipe){
System.out.print(split+",");
}
System.out.println();
String distributedWithEscapedPipe[] =str.split("\\|"); // This worked for me
System.out.println("Words With String.split() distributedWithEscapedPipe ->");
for(String split : distributedWithEscapedPipe){
System.out.print(split+",");
}
}
}
Original String -> SampleData|1111|9130|23||1257|2014-04-01 18:00:00|2014-04-12 09:00:00||Software Developer|20|Vikas||PATIL
Words With StringTokenizer
SampleData,1111,9130,23,1257,2014-04-01 18:00:00,2014-04-12 09:00:00,Software Developer,20,Vikas,PATIL,
Words With String.split() distributedWithPipe character ->
,S,a,m,p,l,e,D,a,t,a,|,1,1,1,1,|,9,1,3,0,|,2,3,|,|,1,2,5,7,|,2,0,1,4,-,0,4,-,0,1, ,1,8,:,0,0,:,0,0,|,2,0,1,4,-,0,4,-,1,2, ,0,9,:,0,0,:,0,0,|,|,S,o,f,t,w,a,r,e, ,D,e,v,e,l,o,p,e,r,|,2,0,|,V,i,k,a,s,|,|,P,A,T,I,L,
Words With String.split() distributedWithEscapedPipe ->
SampleData,1111,9130,23,,1257,2014-04-01 18:00:00,2014-04-12 09:00:00,,Software Developer,20,Vikas,,PATIL,
StringTokenizer
在其javadoc中声明了这种行为(尽管我承认它可能更清楚,但这取决于如何解释“连续字符”):
StringTokenizer的实例有两种行为方式之一,这取决于它是使用值为true还是false的returnDelims标志创建的:
>
如果标志为false,则分隔符用于分隔标记。标记是不是分隔符的连续字符的最大序列。
我正在尝试用Java编写RSA加密和解密类,用于客户端来回传递字符串的服务器。我为这些类编写了以下代码: 我有以下测试类代码: 然而,当我尝试运行测试类时,密钥生成和加密工作正常,但当我尝试解密时,会出现一个错误。错误是javax。加密。IllegalBlockSizeException:数据不能超过128字节,但我的数据肯定小于128字节。 我可以确认将公钥转换为字符串并返回相同的公钥。我也尝试
问题内容: 我正在尝试从EditText字段中将两个数字加在一起。到目前为止,我有下面的代码,我相信它会将EditText字段“ pos1_deg”和“ pos2_deg”转换为整数deg1和deg2。 然后,我可以执行以下操作将它们添加在一起 然后degSum寄存器保存deg1和2的和。 然后要输出回“结果” EditText,我需要将整数degSum更改为字符串。我认为正确的方法是使用以下代码
我使用StringTokenizer将字符串分成标记,但是每当出现在中间而没有任何时,就跳过它并取下一个标记 实际产出 想要的Outupt
问题内容: 我对使用MONEY数据类型的JDBC应用程序有疑问。当我插入MONEY栏时: 我有例外: 在使用ODBC驱动程序的本机Windows应用程序中,也可以使用相同的SQL。我住在波兰,居住在波兰,在我的国家/地区用逗号分隔数字的小数部分,因此我尝试: 而且有效。我检查了在PreparedStatement中必须使用点分隔符:。当然,我可以使用: 但是有些代码是“通用”代码,它从csv文件导
我正试图读取一个带有XML的字符串,并面临一个意外的令牌问题。 我在JMeter中使用一个JSR223采样器,并试图通过使用
我们在一个应用程序中使用ffmpeg对视频进行切片。虽然它对PAL视频的切片效果很好,但它对QT视频却不起作用...下面是我们使用的命令: ffmpeg.exe-i“input.mp4”ss startTime-c copy-to stopTime-y“output.mp4” 抛出错误-“[mp4@0515C240]在流#1中找不到编解码器pcm_s16le的标记,容器中当前不支持编解码器” 输入