【问题标题】:Java - accessing characters in a string in a 2D-array-like manner?Java - 以类似二维数组的方式访问字符串中的字符?
【发布时间】:2013-07-10 19:04:36
【问题描述】:

是否有一种或多或少简单的方法(无需自己实现)来使用类似二维数组的语法访问字符串中的字符?

例如:

"This is a string\nconsisting of\nthree lines"

您可以在哪里访问(读/写)'f',例如 myString[1][12] - 第二行,第 13 行。

【问题讨论】:

  • 我理解您为什么要编辑以显示有效的 Java 语法,但我认为您的原始布局更容易理解!

标签: java string character


【解决方案1】:

您可以使用 split() 函数。假设你的 String 被赋值给变量 s,那么

String[] temp = s.split("\n");

这将返回一个数组,其中每个数组元素都是一个单独的新行上的字符串。然后就可以了

temp[1].charAt(3);

访问第一行(从零开始)的第三个字母(从零开始)。

【讨论】:

  • 很好,这很简单。
  • 太棒了。谢谢,这非常接近我想要的。
【解决方案2】:

你可以这样做:

String myString = "This is a string\nconsisting of\nthree lines";
String myStringArr[] = myString.split("\n");
char myChar = myStringArr[1].charAt(12);

【讨论】:

    【解决方案3】:

    要修改字符串中位置的字符,您可以使用StringBuffer

    StringBuffer buf = new StringBuffer("hello");
    buf.insert(3, 'F');
    System.out.println("" + buf.toString());
    buf.deleteCharAt(3);
    System.out.println("" + buf.toString());
    

    除了拆分成 2D 矩阵之外,应该自行实现。

    【讨论】:

      【解决方案4】:

      简而言之,不。您唯一的选择是创建一个包装并插入该字符串的对象,然后提供合适的访问器方法,例如

      new Paragraph(myString).get(1,12);
      

      请注意,您不能将索引运算符 [number] 用于数组以外的任何内容。

      【讨论】:

        猜你喜欢
        • 2013-10-10
        • 1970-01-01
        • 1970-01-01
        • 2019-02-18
        • 2010-12-19
        • 1970-01-01
        • 1970-01-01
        • 2021-06-12
        • 1970-01-01
        相关资源
        最近更新 更多