我正在尝试split()一个没有空格的String,但在[0]处得到一个空白。
String s = "..1..3..";
String[] result2 = s.split("");
System.out.println(result2[0]); // giving me a blank space
我意识到“”可能不是正确的,但无法找到替代方案。是否有可能拆分别的东西,或者在使用split()时这总是得到这个空格?
编辑解决方案:
StringBuilder response = new StringBuilder();
while((i = in.read()) != -1){
response.append((char)i);
}
result = response.toString();
result = result.replace("\n", "").replace("\r", "");
答案 0 :(得分:3)
0
包含从字符串开头到第一个点的数据(即空字符串)1
包含第一个点2
包含第二个点3
包含字符串1
答案 1 :(得分:3)
你的正则表达式在输入的每个位置分裂,包括第一个位置,它位于输入的开始 - 之前第一个字符。然后找到的第一个元素是输入开始和第一个字符之间的内容,当然是零长度字符串 - 空白。
但是,您不需要特殊代码来处理此问题。要将String
中的每个字符都设为String[]
,您需要使用此正则表达式:
String[] chars = input.split("(?<=.)";
这个正则表达式是背后的,意味着“在每个角色之后”。
答案 2 :(得分:0)
您可以使用charAt()
方法执行您所做的操作。
如果按照自己的方式执行此操作,则可能需要删除返回数组的第一个元素。一种方法是使用Arrays.copyOfRange()
。
String[] newArr = Arrays.copyOfRange(oldArr, 1, oldArr.length);
答案 3 :(得分:0)
为什么不只是String.toCharArray();
然后将该数组转换为String[]
如果你真的需要它是String []类型,否则char []看起来正是你想要做的,除了你不会在元素0和9中找到那些有趣的空字符串。