我有一个字符串,"004-034556"
我想分成两个字符串:
string1="004";
string2="034556";
Run Code Online (Sandbox Code Playgroud)
这意味着第一个字符串将包含之前的字符'-'
,第二个字符串将包含之后的字符'-'
.我还想检查字符串是否包含'-'
在其中.如果没有,我会抛出异常.我怎样才能做到这一点?
我有一个string="name";
我想转换成字符串数组.我该怎么做?有没有内置的java函数?手动我可以做到,但我正在寻找一个内置的java函数.
我想要一个数组,其中字符串的每个字符都是一个字符串.像char'n'现在将字符串"n"存储在一个数组中.
我需要将String拆分为单个字符串的数组.
例如,拆分"cat"会给出数组"c","a","t"
我不明白这段代码的输出:
public class StringDemo{
public static void main(String args[]) {
String blank = "";
String comma = ",";
System.out.println("Output1: "+blank.split(",").length);
System.out.println("Output2: "+comma.split(",").length);
}
}
Run Code Online (Sandbox Code Playgroud)
得到以下输出:
Output1: 1
Output2: 0
Run Code Online (Sandbox Code Playgroud) 请看下面的代码 -
String s11 ="!country=India ";
String[] ss =s11.split("((?<=[!&|])|(?=[!&|]))");
System.out.println(ss.length);
for(String s :ss) {
System.out.println(s);
}
Run Code Online (Sandbox Code Playgroud)
在Windows上,它给出了
2
!
country=India
Run Code Online (Sandbox Code Playgroud)
而Ubuntu给出了它
3
!
country=India
Run Code Online (Sandbox Code Playgroud)
那为什么会这样?
如果我们有一个val txt: kotlin.String = "1;2;3;"
并且喜欢将它拆分成数组,我们可以尝试以下方法:
val numbers = string.split(";".toRegex())
//gives: [1, 2, 3, ]
Run Code Online (Sandbox Code Playgroud)
尾随空String
包含在结果中CharSequence.split
.
另一方面,如果我们看一下Java String
,结果是不同的:
val numbers2 = (string as java.lang.String).split(";")
//gives: [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
这次使用时java.lang.String.split
,结果不包括尾随空String
.这个行为实际上是给定相应的JavaDoc:
此方法的工作方式就像调用带有给定表达式和limit参数为零的双参数split方法一样.因此,结尾的空字符串不包含在结果数组中.
在科特林的版本,虽然,0
也就是默认limit
的文件的说法在这里,但内部科特林地图,0
负的值-1
时,java.util.regex.Pattern::split
被称为:
nativePattern.split(input, if (limit == 0) -1 else limit).asList()
Run Code Online (Sandbox Code Playgroud)
它似乎按预期工作但我想知道为什么该语言似乎限制Java API,因为0
不再提供限制.
我有包含一些数据的文本文件。所有段落都以四个空格开头。我的目的是将这段文字分成几段。
首先,我使用以下方法阅读全文:
public String parseToString(String filePath) throws IOException{
return new String(Files.readAllBytes(Paths.get(filePath)), StandardCharsets.UTF_8);
}
Run Code Online (Sandbox Code Playgroud)
然后我使用此代码拆分字符串:
private static final String PARAGRAPH_SPLIT_REGEX = "(^\\s{4})";
public void parseText(String text) {
String[] paragraphs = text.split(PARAGRAPH_SPLIT_REGEX);
for (int i = 0; i < paragraphs.length; i++) {
System.out.println("Paragraph: " + paragraphs[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
我的输入文件是:
Hello, World!
Hello, World!
Run Code Online (Sandbox Code Playgroud)
输出是:
Paragraph:
Paragraph: Hello, World!!!
Hello, World!!!
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我想在分隔符上拆分一个String.示例字符串:
String str="ABCD/12346567899887455422DEFG/15479897445698742322141PQRS/141455798951";
Run Code Online (Sandbox Code Playgroud)
现在我想要Strings ABCD/12346567899887455422
,DEFG/15479897445698742322141
就像我想要的那样
/
我的代码尝试:
public class StringReq {
public static void main(String[] args) {
String str = "BONL/1234567890123456789CORT/123456789012345678901234567890HOLD/123456789012345678901234567890INTC/123456789012345678901234567890OTHR/123456789012345678901234567890PHOB/123456789012345678901234567890PHON/123456789012345678901234567890REPA/123456789012345678901234567890SDVA/123456789012345678901234567890TELI/123456789012345678901234567890";
testSplitStrings(str);
}
public static void testSplitStrings(String path) {
System.out.println("splitting of sprint starts \n");
String[] codeDesc = path.split("/");
String[] codeVal = new String[codeDesc.length];
for (int i = 0; i < codeDesc.length; i++) {
codeVal[i] = codeDesc[i].substring(codeDesc[i].length() - 4,
codeDesc[i].length());
System.out.println("line" + i + "==> " + codeDesc[i] + "\n");
}
for (int i = 0; …
Run Code Online (Sandbox Code Playgroud) 我需要将字符串拆分为字符对,但字符对重叠。例如,我有一个 string Testing
,我想要输出:
[Te, es, st, ti, in, ng]
Run Code Online (Sandbox Code Playgroud)
我尝试了一些东西,String.split
但没有得到正确的输出:
String s = "Testing";
System.out.println(java.util.Arrays.toString(s.split("(?<=\\G..)")));
Run Code Online (Sandbox Code Playgroud)
这给了我:
[Te, st, in, g]
Run Code Online (Sandbox Code Playgroud)
谁能帮我?
给出以下字符串:
String s ="12/15|22:58:25|B|99.502||||A|100.501|||||";
Run Code Online (Sandbox Code Playgroud)
我在打电话
int len = s.split("\\|").length;
Run Code Online (Sandbox Code Playgroud)
无论如何长度是9,而不是13.
不过,如果我以这种方式修改所述字符串:
String s ="12/15|22:58:25|B|99.502||||A|100.501|||lol||";
Run Code Online (Sandbox Code Playgroud)
长度是13!怎么样?java似乎只进行某种优化,这不是必需的,因为字符串的那些部分可以填充在其他一些上下文中...