How to Split a String into Different Variables

2019-10-17 23:12发布

假设我有以下代码:

String s = "{U1,U2,U3},{U5,U7},{U4,U6,U8}";

我怎样才能让这个看起来像它低于?

String s1 = {U1,U2,U3};
String s2 = {U5,U7};
String s3 = {U4,U6,U8};

在组合s可以是任何形式的。 S1,S2,S3是不同的字符串。

Answer 1:

您可以使用以下方法:

  • 公众诠释的indexOf(字符串str,INT的fromIndex)来确定像OCCURENCES的索引"},{"
  • 公共字符串的子串(INT的beginIndex,诠释endIndex的)到extraxt的找到指标之间的部分。

见例如 :

  public static void parse(String[] args) throws java.lang.Exception
  {
     String myString = "{U1,U2,U3},{U5,U7},{U4,U6,U8}";
     int begin = 0;
     int end = 0;
     String s1;
     while (end != -1){     
       end = myString.indexOf("},{", begin);

       if ((end < myString.length()) && ((begin < end)))
         s1 = myString.substring(begin, end + 1);
       else
         s1 = myString.substring(begin);

       begin = end + 2;
       System.out.println(s1);
     }
  }


Answer 2:

这里是我的代码:

public class SplitString {
    public static void main(String[] args) {

        String s ="{U1,U2,U3},{U5,U7},{U4,U6,U8}";
        String[] splitted = s.split("},");

        // add the end brace for every entry except the last
        for (int i=0 ; i < splitted.length-1 ; i++) {
            splitted[i]=splitted[i] + "}";
        }

        // print out the string array
        for (int i=0; i< splitted.length ; i++) {
            System.out.println("String s"+i+" = "+splitted[i]);
        }
    }
}

这种拆分每次遇到两个字符时间}, ,把其写入字符串数组“分裂”,然后通过字符串数组循环,并增加了一个}在每一个除了最后的结束。

输出:

String s0 = {U1,U2,U3}
String s1 = {U5,U7}
String s2 = {U4,U6,U8}


Answer 3:

通过使用replace()函数替换"{"" "和分裂基于"," ; 取这些值代入数组和对数组进行排序。 现在,你可以很容易地显示任何你想要的格式。



Answer 4:

各执,}字符的组合。 下面的代码是C#。 我不知道确切的Java等价物。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = "{U1,U2,U3},{U5,U7},{U4,U6,U8}";

            string[] splitstring = Regex.Split(s,"},");
            // the string obtained are splitstring[0]= {U1,U2,U3 splitstring[1]={U5,U7    
            // splitstring[2]={U4,U6,U8}

           // Note only last string is not missing closing bracket so in a loop we append closing                 
          //  bracket to all strings except last string

            for (int i = 0; i < splitstring.Length; i++)
                if (i == splitstring.Length - 1)
                    continue;
                else
                    splitstring[i] = splitstring[i] + "}";

            foreach (string str in splitstring)
                Console.WriteLine("\n" + str);
        }
    }
}


Answer 5:

public static void main(String... args) {

    String input = "{U1,U2,U3},{U5,U7},{U4,U6,U8}";

    Pattern pattern = Pattern.compile("\\{[^\\}]*\\}");
    Matcher matcher = pattern.matcher(input);
    while (matcher.find()) {
        String s = matcher.group();
        System.out.format("%s\n", s);
    }
}


文章来源: How to Split a String into Different Variables
标签: java parsing