【问题标题】:How do you change one area of a String?如何更改字符串的一个区域?
【发布时间】:2015-05-03 15:55:22
【问题描述】:

如果我有一个有多种用途的字符串,我该如何编辑字符串的一部分?


如:

String Output="|0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |";

如何更改然后只读取第一个零? 然后对其余的做同样的事情。将它们作为自己的变量。

【问题讨论】:

  • string.replaceFirst("0", "Foo");
  • 看起来您可能正在使用String,而其他类型(例如int[]List<Integer>)可能更好。
  • 您真的不应该尝试以这种形式操作数据。它很尴尬,它很慢,而且它不健壮。如果可能,请为变量使用数组或列表。
  • 这肯定看起来像XY problem。你实际上想要完成什么?您根本无法更改StringString 对象是不可变的。您可以创建新的String 对象、提取字符值、将子字符串解析为int 值等。请为您的问题提供一些上下文,以便我们提供适当的帮助。

标签: java string


【解决方案1】:

尝试类似:

String splits = s.replace("|", "").split(" ");
System.out.println(splits[0]);

【讨论】:

    【解决方案2】:

    如何更改然后只读取第一个零?然后对其余的做同样的事情。将它们作为自己的变量。

    我不会。我会使用数组、List、对象属性或单独的变量,具体取决于用例。

    但如果你真的,真的想要,你可以像这样读取任何这些值

    int value = Integer.parseInt(Output.substring((n * 4, 2).trim());
    

    ...其中n 是您要获取其值的条目的从零开始的索引。

    您可以像这样编写任何这些值:

    String vstr = String.valueOf(value);
    if (vstr.length < 2) {
        vstr += " ";
    }
    Output = Output.substring(0, ((n - 1) * 4) + 2) + vstr + Output.substring(n * 4);
    

    但它可读吗?不。有效吗?没有。:-)

    int[] 比较:

    int[] values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    

    阅读:

    int value = values[n];
    

    写作:

    values[n] = value;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      • 1970-01-01
      • 2017-10-29
      • 2014-07-22
      相关资源
      最近更新 更多