在Java中,可通过字符与整型的强制转换修改ASCII值: ,1. **字符转ASCII码**:
int ascii = (int) 'A';
(结果为65) ,2. **ASCII码转字符**:char ch = (char) 65;
(结果为’A’) ,3. **修改字符串ASCII**:遍历字符串字符,调整ASCII值后重组新字符串。 ,注意:操作需确保ASCII值在有效范围(0-127)。字符与ASCII码的相互转换
字符 → ASCII码(整数值)
char ch = 'A'; int asciiValue = (int) ch; // 输出:65
ASCII码 → 字符
int asciiValue = 65; char ch = (char) asciiValue; // 输出:'A'
修改字符串中的ASCII字符
替换特定ASCII字符
String original = "Hello@World"; // 替换ASCII为64的字符'@'为'!' String modified = original.replace('@', '!'); // 结果:"Hello!World"
删除非ASCII字符
String text = "Javá编程☕"; // 移除非ASCII字符(保留0-127范围) String asciiOnly = text.replaceAll("[^\x00-\x7F]", ""); // 结果:"Jav"
转换字符串为ASCII字节数组
String str = "ABC"; byte[] asciiBytes = str.getBytes(StandardCharsets.US_ASCII); // 字节数组:[65, 66, 67]
修改ASCII码值并生成新字符串
示例:将所有字母ASCII码+1(A→B, B→C)
String input = "ABC"; StringBuilder output = new StringBuilder(); for (char c : input.toCharArray()) { int asciiValue = (int) c; asciiValue++; // 修改ASCII值 output.append((char) asciiValue); } System.out.println(output.toString()); // 输出:"BCD"
特殊场景处理
处理ASCII控制字符(如换行符)
// 替换换行符(ASCII 10)为空格 String text = "Line1nLine2"; text = text.replace('n', ' '); // 结果:"Line1 Line2"
生成ASCII字符表
for (int i = 32; i <= 126; i++) { // 打印可打印ASCII字符 System.out.println("ASCII " + i + ": " + (char) i); }
注意事项
- 字符编码范围
- ASCII仅覆盖
0-127
,超出范围需用Unicode
(Java的char
是UTF-16)。
- ASCII仅覆盖
- 不可打印字符
- ASCII值
0-31
为控制字符(如换行、制表符),操作时需谨慎。
- ASCII值
- 编码一致性
- 使用
getBytes()
时显式指定编码:byte[] bytes = str.getBytes("US-ASCII"); // 避免平台默认编码问题
- 使用
- 字符串不可变性
Java字符串不可变,修改操作会返回新对象。
- 转换ASCII码:通过
(int)
和(char)
强制转换实现字符与整数值互转。 - 修改字符串:用
replace()
、正则表达式或遍历字符数组操作ASCII。 - 字节处理:通过
getBytes(StandardCharsets.US_ASCII)
获取字节数组。
引用说明基于Java官方文档对字符编码的定义,参考
java.lang.Character
类和java.nio.charset.StandardCharsets
的实现规范,实践中请确保字符编码范围符合ASCII标准(0-127)。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/31085.html