You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Java中如何将字符串"' '"转换为字符' '

解决方法

首先得明确你的字符串具体结构——我猜大概率是两种情况:要么是首尾被单引号包裹着实际换行符,要么是包含转义序列\n的字符串。针对这两种场景,分别给你可行的方案:

情况1:字符串直接包含实际换行符

如果你的字符串是"'\\n'"(打印出来是首尾单引号中间夹着换行,比如:
'
'
),那直接取中间的字符就行:

String yourStr = "'\n'";
char newlineChar = yourStr.charAt(1);
// 验证:System.out.println((int)newlineChar); 会输出10,正是换行符的ASCII码

字符串索引从0开始,第1位就是你要的换行符,这是最直接的方式。

情况2:字符串包含转义的\n序列

如果你的字符串实际是"'\\n'"(也就是内容是单引号、反斜杠、n、单引号,共4个字符),那得先解析转义序列,再提取字符:

方法A:用第三方工具库(省心)

比如Apache Commons Text的StringEscapeUtils,可以直接解析Java转义字符:

import org.apache.commons.text.StringEscapeUtils;

String yourStr = "'\\n'";
// 先去掉首尾的单引号
String innerContent = yourStr.substring(1, yourStr.length() - 1);
// 解析转义得到实际的换行符字符串
String escapedStr = StringEscapeUtils.unescapeJava(innerContent);
char newlineChar = escapedStr.charAt(0);

方法B:手动处理(无依赖)

如果不想引入第三方库,针对\n这种常见转义可以自己判断:

String yourStr = "'\\n'";
String innerContent = yourStr.substring(1, yourStr.length() - 1);
char newlineChar;
if ("\\n".equals(innerContent)) {
    newlineChar = '\n';
} else {
    // 其他转义或普通字符可以在这里扩展处理
    newlineChar = innerContent.charAt(0);
}

你可以打印字符串长度或每个字符的ASCII码来确认实际结构,再选对应的方法就行~

内容的提问来源于stack exchange,提问作者novayhulk14

火山引擎 最新活动