短信长度判断:判断是长短信

判断思路:

先筛选出短信内容中包含的中文字符,再用短信内容长度减去中文字符,便得到剩下的字符数,然后算出总字节数

/**
* 判断是否是长短信
*/
private Integer judgeLongMsg(String tempContent) {
//判断短信中有几个中文字符
int count=0;
String regex = "[\u4e00-\u9fa5]";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(tempContent);
while (matcher.find()) {
for (int i = 0; i <= matcher.groupCount(); i++) {
count = count + 1;
}
}
System.out.println("短信内容中共有 " + count + "个汉字 ");
//判断是否是长短信
int msgContentLength=tempContent.length();
Integer otherChar=msgContentLength-count;//短信中除中文外有几个其他字符
Integer judgeMsgContent=count*2+otherChar;
Integer islongMsg;
if(judgeMsgContent<=140) {//最多发送140个字节
islongMsg=0;
}else {
islongMsg=1;
}
return islongMsg;
}

原文地址:https://www.cnblogs.com/curedfisher/p/12243472.html

时间: 2024-10-08 17:39:15

短信长度判断:判断是长短信的相关文章

长短信与短信签名

长短信一般是指超过70个汉字的短信内容,由于长短信需要加增加长短信的协议头(6个字节),所以,每条短信就不是70个了,而是67个汉字[即字符长度是134].6个字节的协力头如: 6位协议头格式:05 00 03 XX MM NN. C++实现如下: char bHead[20] = {0}; sprintf(bHead,"%c%c%c%c%c%c",5,0,3,1,SmsCount,getSmsIndex() +1);  //SmsCount 拆分后短信的数量,getSmsIndex(

发送超长短信的协议格式

CMPP协议中,CMPP_SUBMIT_MESSAGE中有两个字段pk_total和pk_numer,恰看起来,这就是发送超长短信的设置参数,其实不然,这两个参数的设置,应该是没有用处. 发送超长短信,需要做两件事情:设置TP_udhi的值设置为1,在消息正文中增加协议头.协议后可以两种格式,分别是长度为6和长度为7的协议头.格式如下: 6位协议头格式:05 00 03 XX MM NN byte 1: 05, 表示剩余协议头的长度 byte 2: 00, 这个值在GSM 03.40规范9.2.

用户输入电话号码,判断合理与否?要求,判断长度和判断输入内容是否合理 隐藏用户电话号码的中间4位

/** *用户输入电话号码,判断合理与否?要求,判断长度和判断输入内容是否合理 *隐藏用户电话号码的中间4位, *思路: *1.用正则判断  条件:长度11位判断有两种方法,正则{11}和length()==11 *2.输入内容用正则判断 *电话号的正则:      "(13)[0-9][\\d]{8}|(15)[0-9][\\d]{8}" */ public class StringDemo4 { public static void main(String[] args) { St

[转载]通达信插件选股(基于通达信插件编程规范的简单分析)

[转载]通达信插件选股(基于通达信插件编程规范的简单分析) 原文地址:通达信插件选股(基于通达信插件编程规范的简单分析)作者:哈尔滨猫猫 首先声明,鄙人是编程人员,不是股民.对选股概念了解甚少.本文仅作编程人员学习借鉴之用.不对选股理论进行探讨和解释. 以前有客户找我做过通达信插件选股的小任务,当时第一次接触面向接口(此类“接口”)编程,也是第一次接触到股票里相关的概念.最近由于接手一个任务,与上次开发相类似,故旧事重提,仔细研究一番.将个人学习研究所得知识与大家分享.在网上搜相关资料,可用的.

iOS判断判断设备类型信息

一.iOS判断判断设备机型 http://www.jianshu.com/p/591765b70ca5 1.导入 #import <sys/utsname.h> 2.代码 struct utsname systemInfo2; uname(&systemInfo2); NSString *platform = [NSString stringWithCString:systemInfo2.machine encoding:NSASCIIStringEncoding];

上海立信会计学院_上海立信会计学院分数线_上海立信_立信会计_立信会计学院

上海立信会计学院会计从业资格证书考试培训http://lixin.sh.cn/44.html 上海会计从业资格证书考试培训立信优势http://lixin.sh.cn/45.html 上海立信会计职称考试培训报名条件|考试时间和科目http://lixin.sh.cn/46.html 上海会计职称考试立信培训优势_师资阵容http://lixin.sh.cn/47.html 上海CPA注会考试培训机构_立信会计CPA考前辅导班http://lixin.sh.cn/48.html 上海CPA考试介

字符串工具类(指定字符串的长度和判断是否为空等方法)

package com.sec.util; /** * 字符串工具类 * @author Administrator * */public class StringUtil { /** * 过滤<,>,\n 字符串的方法 * @param input * @return */ public static String filterHTML(String input){ if(input == null || input.length() == 0){ return input; } input

关于链表的功能(排序,添加,删除,判断长度,判断是否为空,遍历)

#include <stdio.h> #include <malloc.h> #include <stdlib.h> typedef struct node { int data//数据域 struct node * pnext;//指针域 }node,*pnode;(分号不能少)//node等价于 struct node pnode等价于struct node * pnode create_list(void); void traverse_list(pnode ph

css样式:用于一行显示不下的情况,不用判断字符数长短来截取。

.hiddens{  width:80px;     // 设定容器宽度  overflow: hidden;   // 超出容器后隐藏  white-space: nowrap;  // 不换行  text-overflow: ellipsis;   // 以省略号代替  }