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




