当前位置: 首页 > 知识库问答 >
问题:

如何阅读Java中的%字符

卫英悟
2023-03-14

我必须编写一个小的解析应用程序,它是用一些额外的信息重写一个postscriptfile。

为了达到这个目标,我只需要使用一个BufferedReader和一个FileReader和一个FileWriter。但我要用转义符(%号)来处理一个问题。

Java忽略了这个字符,输入文件中的行“%!ps-adobe-3.0”将在字符串中显示为“!ps-adobe-3.0”,在输出文件中也将显示为“!ps-adobe-3.0”。

fellaz你有什么主意吗?我怎么能做到这一点...除了读bytewise:d以外

最诚挚的问候

编辑:这里是代码片段...基文件在UTF8中编码:

BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(args[0]),“UTF-8”));字符串行=br.readline();

在我使用以下代码测试它之前:BufferedReader br=new BufferedReader(new FileReader(args[0]));

它在相同的问题上失败->输入文件中的“%!ps-adobe-3.0”变成变量“line”中的“!ps-adobe-3.0”

共有1个答案

刘乐童
2023-03-14

将使用您引用的代码从文件中读取%。正如我在对这个问题的评论中所说的,如果字符真的存在(我希望它们存在),那么问题不在这段代码中,而在后面的代码中。

从这条评论来看:

%!PS-Adobe-3.0%%Creator:CompuSet版本9.4.0%%CreationDate:5/15/2014 11:11:16%%BoundingBox:0 0 595 842%%Pages:(atend)%%DocumentNeededResources:(atend)%%DocumentSuppliedResources:(atend)以“%%”开头的行处的第一个%符号也将被忽略。

...我猜您正在使用system.out.printf输出您正在阅读的内容,但错误地如下所示:

System.out.printf(line); // <=== Wrong

传入printf的第一个字符串是一个格式字符串,它可以是以%开头的占位符。%%是一个特殊的“占位符”,用于输出%

所以您并没有真正看到的内容。请尝试改用printprintln:

System.out.println(line);

...或正确使用printf:

System.out.printf("%s\n", line);

%s输出未更改的字符串。

 类似资料:
  • 问题内容: 我需要从请求中获取所有参数,包括“#”之后的内容。示例:请求:http:// myserver / m#q = abc 我需要我的服务器获取“#”之后的所有参数,因为它们在“?”之后的位置 我怎样才能做到这一点?10倍,Koby 问题答案: 请求资源时,客户端不会将RFC 1738 中所指的锚点或URL片段发送给服务器。理由是片段URL用于标识资源内的位置,而不是服务器上的其他资源。为

  • 问题内容: 我有以下从缓冲读取器读取数据的示例: 每当缓冲读取器中出现某些情况时(在这种情况下),将执行循环中的代码。在我的情况下,如果客户端应用程序将某些内容写入套接字,则将执行循环中的代码(服务器应用程序中)。 但是我不明白它是如何工作的。等待直到缓冲读取器中出现某些内容,当其中出现某些内容时,它将返回并执行循环中的代码。但是什么时候可以退货。 还有另一个问题。上面的代码摘自一个方法,我在线程

  • 问题内容: CSS属性属性如何读取? 难道,......? 答: 从下面的答案中,它看起来很简单,或者。 问题答案: “!important”声明(定界符“!”和关键字“ important”紧随该声明)优先于普通声明。 基本上,在两个样式规则相同的地方……它给了一个明显的重要性,并将应用这些样式。 例 即使第二条规则更具体,也将应用第一条规则(一个元素+一个类,而不是一个元素) 注意: 当您拥有

  • 欢迎来到Go的世界,让我们开始探索吧! Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点: 它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。 Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。 Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感觉起来比典型的面向对

  • 你好,我正在尝试使用火花从文本文件中读取特定的行。 它可以用。获取第一行数据的第一个()命令。文本文件。如何访问文档的第n行?我需要java解决方案。

  • 我刚来Java,如果这是个明显的问题,我很抱歉。 我正在尝试逐个字符读取字符串以创建树节点。例如,输入,节点为 我注意到了 我可以用一个循环来获得所有的角色吗?就像 我试过了,但不管用。 我该怎么做? 非常感谢你的帮助。 扫描器读取器=新扫描器(System.in);System.out.println(“将节点输入为大写字母,不带空格,结尾为'/'”);int i=0;char node=rea