相关疑难解决方法(0)

如何在Java中拆分字符串

我有一个字符串,"004-034556"我想分成两个字符串:

string1="004";
string2="034556";
Run Code Online (Sandbox Code Playgroud)

这意味着第一个字符串将包含之前的字符'-',第二个字符串将包含之后的字符'-'.我还想检查字符串是否包含'-'在其中.如果没有,我会抛出异常.我怎样才能做到这一点?

java string

1564
推荐指数
23
解决办法
373万
查看次数

java中的字符串到字符串数组转换

我有一个string="name"; 我想转换成字符串数组.我该怎么做?有没有内置的java函数?手动我可以做到,但我正在寻找一个内置的java函数.

我想要一个数组,其中字符串的每个字符都是一个字符串.像char'n'现在将字符串"n"存储在一个数组中.

java string

107
推荐指数
8
解决办法
73万
查看次数

将字符串拆分为字符串数组

我需要将String拆分为单个字符串的数组.

例如,拆分"cat"会给出数组"c","a","t"

java regex split

104
推荐指数
6
解决办法
28万
查看次数

令人困惑的String.split输出

我不明白这段代码的输出:

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)

java regex string class core

51
推荐指数
4
解决办法
4937
查看次数

Java字符串拆分在Windows和Linux上提供不同的输出

请看下面的代码 -

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)

那为什么会这样?

java string split

11
推荐指数
1
解决办法
1030
查看次数

Kotlin和Java String之间的区别与Regex分开

如果我们有一个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不再提供限制.

java regex string kotlin

9
推荐指数
1
解决办法
1261
查看次数

使用正则表达式 JAVA 将文本拆分为段落

我有包含一些数据的文本文件。所有段落都以四个空格开头。我的目的是将这段文字分成几段。

首先,我使用以下方法阅读全文:

    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)

我究竟做错了什么?

java regex

3
推荐指数
1
解决办法
5484
查看次数

在char之间拆分字符串

我想在分隔符上拆分一个String.示例字符串:

String str="ABCD/12346567899887455422DEFG/15479897445698742322141PQRS/141455798951";
Run Code Online (Sandbox Code Playgroud)

现在我想要Strings ABCD/12346567899887455422,DEFG/15479897445698742322141就像我想要的那样

  • 之前只有4个字符 /
  • 之后/任意数量的字符数字和字母.更新:我需要前4个字符的唯一时间是在显示分隔符后,因为字符串可能包含字母或数字...

我的代码尝试:

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)

java string split

3
推荐指数
1
解决办法
114
查看次数

如何将字符串拆分为重叠的字符对

我需要将字符串拆分为字符对,但字符对重叠。例如,我有一个 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)

谁能帮我?

java string split

3
推荐指数
1
解决办法
1555
查看次数

如果在字符串的最后部分,则String.split()忽略中间分隔符之间的空值

给出以下字符串:

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似乎只进行某种优化,这不是必需的,因为字符串的那些部分可以填充在其他一些上下文中...

java regex split

2
推荐指数
1
解决办法
671
查看次数

标签 统计

java ×10

string ×7

regex ×5

split ×5

class ×1

core ×1

kotlin ×1