Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:字符串到表_Java_String_Character_Text Files - Fatal编程技术网

Java:字符串到表

Java:字符串到表,java,string,character,text-files,Java,String,Character,Text Files,在Java中,我有一个类似于“0564\n5523\n5445\n8596”的字符串,我或多或少希望创建一个类似以下的表: . * . . * * . . * . . * . * . . 其中*表示它等于5和。意味着它不等于5 基本字符串是直接从文本文件中提取的(仍然不知道我将如何做,但是如果有人有关于它的简单而清晰的文档…;-)) 我想做的方法是这样的(我知道表的初始维度,字符串总是与维度匹配) int计数器=0; 对于(int r=0;r家庭作业 public class d { pu

在Java中,我有一个类似于“0564\n5523\n5445\n8596”的字符串,我或多或少希望创建一个类似以下的表:

. * . .
* * . .
* . . *
. * . .
其中*表示它等于5和。意味着它不等于5

基本字符串是直接从文本文件中提取的(仍然不知道我将如何做,但是如果有人有关于它的简单而清晰的文档…;-))

我想做的方法是这样的(我知道表的初始维度,字符串总是与维度匹配)

int计数器=0;
对于(int r=0;r家庭作业

public class d {
  public static void main(String[] args) {
    String s = "0564\n5523\n5445\n8596";
    System.out.println(s.replaceAll("[^5\n]", ".")
      .replace('5', '*')
      .replaceAll("(.)(?!\n|$)", "$1 ")
      .replaceAll("(\r|\n|\r\n)", System.getProperty("line.separator")));
  }
}

第一个问题:为什么不做一次替换呢

str.replaceAll("5", "*").replaceAll("[0-9]", ".")
第二个问题:“\n”被视为一个字符


第三个问题:如果它是在Windows中创建的。

我没有使用replaceAll,因为它实际上比这更复杂,我不是在每次迭代时修改表,而是在包含表的对象上调用一个方法。因为表在整个程序中是私有的。请记住
字符串
是不可变的:replaceAll将重新设置打开一个新的
字符串
而不是将旧的字符串更改到位。是的,但执行“if thestring.charAt(counter)='5'”与执行“if thestring.charAt(counter)='*'”相同。
str.replaceAll("5", "*").replaceAll("[0-9]", ".")