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;
    }
}

流程图

flowchart TD
    A[开始] --> B[读取字符串]
    B --> C[遍历字符串]
    C --> D{判断字符类型}
    D -->|全角| E[统计全角字符数量]
    D -->|半角| F[统计半角字符数量]
    E --> G[输出全角字符数量]
    F --> H[输出半角字符数量]
    G --> I[结束]
    H --> I

结尾

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