【问题标题】:How should I separate following three string?我应该如何分隔以下三个字符串?
【发布时间】:2013-11-29 18:47:18
【问题描述】:
String s0 = "uc=3 t=450 lb=hh";
String s1 = "uc=3 t=450 lb=tp";
String s2 = "uc=3 t=450 lb=vs";

for(int i=0;i<3;i++){
    String[] s4 = si.split(" ");
}

我应该如何使用 s 的第“i”个值?

【问题讨论】:

    标签: java arrays string for-loop split


    【解决方案1】:

    创建一个数组:

    String[] s = new String[]{s0, s1, s2};
    

    那么你可以使用s[i]来获取s的i-th元素。

    或创建一个列表:

    List<String> s = Arrays.asList(s0, s1, s2);
    

    并使用s.get(i) 获取s 的i-th 元素。

    【讨论】:

      【解决方案2】:

      您可能希望将字符串 s1 s2s3 保存在字符串数组中。

      String[] si = { "uc=3 t=450 lb=hh",
          "uc=3 t=450 lb=tp",
          "uc=3 t=450 lb=vs" };
      

      然后你可以循环它

      for(String s : si) { // enhanced for loop
          String s4[] = s.split(" ");
      }
      

      【讨论】:

      • 这是最好的答案,因为它不会与完全没有意义的s0s1s2 混淆。
      【解决方案3】:

      没有。

      您不能动态创建variable 名称。

      当您执行si 时,它的行为类似于string,而不是原始变量。

      您可以做的是准备一个array 并对其进行迭代。

             String[] array = {s0,s1,s2};
      
              for (String string : array) {
                  String[] resultArray = string.split(" ");
              }
      

      【讨论】:

      • 从技术上讲,如果它们是字段,您可以像 OP 通过反射询问的那样进行操作。不过,我永远不会推荐。 :P
      • @Radiodef 是的。 True.If 字段可以通过反射来完成。但是不,如果局部变量:)
      • 感谢您的回复和帮助。为什么不推荐?
      • @user2935408 首先我可以说的是,当你没有任何其他可能完成你的任务时,去反思,而且它非常慢。请查看此链接,因为我无法解释所有原因securecoding.cert.org/confluence/display/java/…
      【解决方案4】:

      创建一个字符串数组sArr,然后遍历这个数组并拆分。

      String sArr[]={s0,s1,s2};
      for(String s:sArr){
         String[] s4=s.split(" ");
      }
      

      【讨论】:

        猜你喜欢
        • 2020-04-18
        • 2021-03-17
        • 1970-01-01
        • 2020-06-30
        • 1970-01-01
        • 1970-01-01
        • 2014-06-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多