java截取固定大小图片_JAVA技巧(长字符串按指定长度截取)
在web开发中,会遇到这样一个问题,想让某个内容全部保持在一定长度范围内,未超出的行全部显示,超长的行只允许显示一定的长度,结尾用省略号代替。
粗想一下,实现这个功能很容易,直接取字符串的长度(用length()方法),如果超出,就用substring()方法截取一段,然后再在结尾处加上省略号。但实际上这样做是不行的,至少说是某种程度上得不到我们想要的结果,因为一个英文字母和一个汉字用lenth方法得到的值都是1,这不错,但是在显示时,一个汉字占两个字母的位置,这样即使我们截取了指定长度的字符串,但实际显示起来是参差不齐的。下面是我对这个问题给出的解决方案。
/**
* @(#)StringUtil.java
*
*
* @author Examda
*
*/
public class StringUtil{
public StringUtil() {
}
public static void main(String[] args){
String str="12345 英afa五左,大有枝节一碟sd.sdfas 2008-11-22";
System.out.println(StringUtil.omitString(str,30));
str="12345 英afa五左,大有枝节s一碟sd.sdfas 2008-11-22";
System.out.println(StringUtil.omitString(str,30));
str="12345 英afa五左,大有枝节a";
System.out.println(StringUtil.omitString(str,30));
str="12345 英afa五左,大有枝节基";
System.out.println(StringUtil.omitString(str,30));
}
/*
* 计算字符串的字节长度(字母数字计1,汉字及标点计2)
*
*/
public static int byteLength(String string){
int count = 0;
for(int i=0;iif(Integer.toHexString(string.charAt(i)).length()==4){
count += 2;
}else{
count++;
}
}
return count;
}
/*
* 按指定长度,省略字符串部分字符
* @para String 字符串
* @para length 保留字符串长度
* @return 省略后的字符串
*/
public static String omitString(String string,int length){
StringBuffer sb = new StringBuffer();
if(byteLength(string)>length){
int count = 0;
for(int i=0;ichar temp = string.charAt(i);
if(Integer.toHexString(temp).length()==4){
count += 2;
}else{
count++;
}
if(countsb.append(temp);
}
if(count==length-3){
sb.append(temp);
break;
}
if(count>length-3){
sb.append(" ");
break;
}
}
sb.append("...");
}else{
sb.append(string);
}
return sb.toString();
}
}
执行结果是:
12345 英afa五左,大有枝节一...
12345 英afa五左,大有枝节s ...
12345 英afa五左,大有枝节a
12345 英afa五左,大有枝节基
JAVA技巧(长字符串按指定长度截取).doc
下载Word文档到电脑,方便收藏和打印[全文共1301字]
编辑推荐:
下载Word文档
java截取固定大小图片_JAVA技巧(长字符串按指定长度截取)相关推荐
- 截取固定大小图片css,css-使不同大小的图片在固定大小的容器中居中
HTML示例如下: 方法一: .imgbox{ position: relative; width: 240px; height: 240px; } .imgbox img{ position: ab ...
- java截取固定大小图片_识文精灵(ocrwiz):如何把在线文字识别(图片转文字)OCR的互动体验提升到极致...
截图-->粘贴图片(Ctrl+V)-->拷贝结果(Ctrl+C),只需要几秒钟,就可以快速识别并得到图片中的文字,体验行云流水.指哪打哪的感觉,这就是识文精灵(OcrWiz)给大家带来的体 ...
- php截取字符串几位数,php按照指定长度截取字符串的代码
php按照指定长度截取字符串的代码,如果字符串超出了指定的长度,会用...替换,不过这段代码不支持中英文的区分 //if a string is longer than the defined len ...
- java主界面设置背景图片_java 窗体设置背景图片问题?(附上登陆界面代码,我想加个背景图片,求大神帮忙改改)...
java 窗体设置背景图片问题?(附上登陆界面代码,我想加个背景图片,求大神帮忙改改) 关注:223 答案:4 mip版 解决时间 2021-01-26 22:09 提问者非莪莫属 2021-01 ...
- java base64字符 转图片_JAVA实现图片与base64字符串之间的转换详解
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...
- java 获取排列组合_Java获得一个数组的指定长度排列组合算法示例
本文实例讲述了Java获得一个数组的指定长度排列组合算法.分享给大家供大家参考,具体如下: package demo; import java.util.Stack; /** * JAVA获得一个数组 ...
- java实现三个数字的随机组合_JAVA编程实现随机生成指定长度的密码功能【大小写和数字组合】...
本文实例讲述了java编程实现随机生成指定长度的密码功能.分享给大家供大家参考,具体如下: import java.util.random; public class passwordcreate { ...
- java字符串长度_Java中String字符串的最大长度?
1.Java中的字符串String最大长度,编译期如果是javac编译就是65534.如果绕过javac编译的限制,其最大长度可以达到u2类型变达的最大值65535. Oracle JDK的编译工具J ...
- python 分隔符截取字符串_python指定分隔符截取字符串
python截取指定分隔符后面的字符串 例如:notifydata[1] =G20-杭州峰会放假时间 notifydata[2] =G20-杭州峰print('-'.join('G20-杭州峰会-放假 ...
最新文章
- 做个md5查询站(2)初步设计
- php跳转隐藏url参数,.htaccess从URL中删除index.php并隐藏参数键
- Linux搜索查找命令合集
- NIO 之 ByteBuffer实现原理
- jquery ajax 滚动加载数据
- 深入浅出理解HOG特征---梯度方向直方图
- mysql limit 越大越慢_mysql 优化之14:php mysql limit 分页优化,页面值越大查询越慢...
- 一滴血、15分钟!钟南山指导研制试剂盒有望快速检测出结果
- PSD分层可临摹模板|无线端电商页面UI设计几个常见的错误
- 通过yum install 方式安装snmp包遇到的问题,gsk7bas64-7.0-4.44.x86_64 has missing libstdc++.so.*等
- python datetime strptime_python datetime模块strptime/strptime format常见格式命令_施罗德_新浪博客...
- HCIE Security 防火墙URL过滤技术 备考笔记(幕布)
- Java中,异常处理try catch的作用域是局部的
- DNS 案例1 案例5轮询
- php-elasticsearch 单条、批量插入数据
- spring boot 用dbcp2连接数据库出现(Access denied for user 'root'@'localhost' (using password: YES)) 异常
- 【智慧城市】GIS数据获取-获取道路/水路数据
- 振南的 znFAT(前言)
- tkmybatis更新无效
- 可以快速提高编程能力的9个建议
热门文章
- 斗图?教你用 Python 制作表情包
- 证明:无理数乘以非零的有理数仍然是无理数
- 计算机弹音乐薛之谦的歌曲,薛之谦 万能音符(The Key) 薛之谦歌曲,薛之谦mp3在线试听 - 5nd音乐网...
- 使用Windows批处理+ImageMagick 实现批量处理图片
- matlab批量修改图片的大小_MATLAB实现批量处理图像图片的两种方法
- 2021好用的CI/CD工具推荐清单
- 从asm磁盘头自动备份看11g到12c的新特性--Physical_metadata_replication
- Android TextView中划线、下划线、跑马灯的简单使用
- 兵棋---棋盘绘制算法(六边形阵列算法)
- 代码可读性为什么重要啊....人家读不出来不是更安全吗?