qq_36973387 2017-08-01 13:18 采纳率: 0%
浏览 864

请用 Java 写一个 String 处理方法)

请用 Java 写一个 String 处理方法,将输入字符串中的中文与英文、数字之间使用空格隔开,并针对特殊符号(括号和逗号)

  • 写回答

3条回答 默认 最新

  • fufeiwen 2017-08-02 01:47
    关注

    package com.fufeiwen.test;

    import java.util.regex.Pattern;

    public class Test {

    public static void main(String args[]) {
        System.out.println(getStr("我是中国ren,nishi谁?"));
    }
    
    public static String getStr(String str) {
        String curStr;
        int preType = -1;
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < str.length(); i++) {
            curStr = str.substring(i, i + 1);
            int curType = getType(curStr);
            if (i>0&&curType != preType) {
                sb.append(" ");
            }
            sb.append(curStr);
            preType=curType;
        }
        return sb.toString();
    }
    
    public static int getType(String str) {
        String chinese = "^[\u4e00-\u9fa5]{0,}$";
        String number = "^[0-9]*$";
        String letter = "^[A-Za-z]+$";
        int num = 0;//其他
        if (Pattern.matches(chinese, str)) {
            num = 1;//中文
        } else if (Pattern.matches(number, str)) {
            num = 2;//数字
        } else if (Pattern.matches(letter, str)) {
            num = 3;//字母
        }
        return num;
    }
    

    }

    以上是大体思路,没考虑性能、细节。

    评论

报告相同问题?

悬赏问题

  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd