如何在Java中按位置拆分字符串

Rog*_*r22 7 java string

我没有找到任何答案..如果我有:String s = "How are you"?我怎么能把它分成两个字符串,所以第一个字符串包含from 0..s.length()/2和第二个字符串来自s.length()/2+1..s.length()

谢谢!

aio*_*obe 22

这应该做:

String s = "How are you?";
String first = s.substring(0, s.length() / 2);  // gives "How ar"
String second = s.substring(s.length() / 2);    // gives "e you?"
Run Code Online (Sandbox Code Playgroud)

(注意,如果字符串的长度是奇数,second则将比first整数除法中的舍入更多一个字符.)


Alo*_*ard 5

你可以使用'substring(start,end)',但当然检查string之前是否为null:

String first = s.substring(0, s.length() / 2);
String second = s.substring(s.length() / 2);
Run Code Online (Sandbox Code Playgroud)

你期待奇数长度的字符串吗?在这种情况下,您必须添加逻辑以正确处理此案例.


Big*_*c66 5

String s0 = "How are you?";
String s1 = s0.subString(0, s0.length() / 2);
String s2 = s0.subString(s0.length() / 2);
Run Code Online (Sandbox Code Playgroud)

只要s0不为空.

编辑

这将适用于奇数长度字符串,因为您没有向任一索引添加1.令人惊讶的是,它甚至适用于零长度字符串"".