Java如何识别全角半角符号

在编程中,我们经常需要处理字符串,而字符串中可能包含全角和半角字符。全角字符和半角字符在视觉上有一定的区别,但在编码上却可能相同。例如,全角数字0123456789和半角数字0123456789在Unicode编码上是不同的,但它们的ASCII码却相同。因此,在Java中识别全角半角字符是一个常见的需求。

问题描述

假设我们需要编写一个Java程序,用于识别一个字符串中的全角和半角字符,并统计它们的数量。这个问题可以通过分析字符串中的每个字符的Unicode编码来解决。

解决方案
  1. 读取字符串:首先,我们需要从用户那里获取一个字符串。
  2. 遍历字符串:然后,我们需要遍历字符串中的每个字符。
  3. 判断字符类型:对于每个字符,我们需要判断它是全角还是半角。
  4. 统计字符数量:根据字符类型,我们分别统计全角和半角字符的数量。
代码实现
import java.util.Scanner;

public class FullHalfAngleIdentifier {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个字符串:");
        String input = scanner.nextLine();
        scanner.close();

        int fullAngleCount = 0;
        int halfAngleCount = 0;

        for (char c : input.toCharArray()) {
            if (isFullAngle(c)) {
                fullAngleCount++;
            } else if (isHalfAngle(c)) {
                halfAngleCount++;
            }
        }

        System.out.println("全角字符数量:" + fullAngleCount);
        System.out.println("半角字符数量:" + halfAngleCount);
    }

    private static boolean isFullAngle(char c) {
        return c >= 0xFF01 && c <= 0xFF5E;
    }

    private static boolean isHalfAngle(char c) {
        return c >= 0x0021 && c <= 0x007E;
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
流程图
全角 半角 开始 读取字符串 遍历字符串 判断字符类型 统计全角字符数量 统计半角字符数量 输出全角字符数量 输出半角字符数量 结束
结尾

通过上述代码和流程图,我们可以看到如何使用Java来识别全角和半角字符,并统计它们的数量。这种方法可以应用于许多需要处理字符串的场合,例如文本编辑器、搜索引擎等。希望这个解决方案对你有所帮助。