-
java截断字符串_Java用省略号截断字符串的理想方法
2021-02-12 21:45:11小编典典似乎您可以从Java图形上下文的中获得更准确的几何图形FontMetrics。附录:解决此问题时,可能有助于区分模型和视图。模型是StringUTF-16代码点的有限序列,而视图是一系列字形,以某种字体在某些设备上呈现...小编典典
似乎您可以从Java图形上下文的中获得更准确的几何图形FontMetrics。
附录:解决此问题时,可能有助于区分模型和视图。模型是StringUTF-16代码点的有限序列,而视图是一系列字形,以某种字体在某些设备上呈现。
在Java的特定情况下,可以使用JavaSwingUtilities.layoutCompoundLabel()进行翻译。下面的示例拦截了布局调用BasicLabelUI以演示效果。在其他情况下也可以使用实用程序方法,但是FontMetrics必须根据经验确定适当的方法。
替代文字
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.GridLayout;
import java.awt.Rectangle;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
import javax.swing.plaf.basic.BasicLabelUI;
/** @see http://stackoverflow.com/questions/3597550 */
public class LayoutTest extends JPanel {
private static final String text =
"A damsel with a dulcimer in a vision once I saw.";
private final JLabel sizeLabel = new JLabel();
private final JLabel textLabel = new JLabel(text);
private final MyLabelUI myUI = new MyLabelUI();
public LayoutTest() {
super(new GridLayout(0, 1));
this.setBorder(BorderFactory.createCompoundBorder(
new LineBorder(Color.blue), new EmptyBorder(5, 5, 5, 5)));
textLabel.setUI(myUI);
textLabel.setFont(new Font("Serif", Font.ITALIC, 24));
this.add(sizeLabel);
this.add(textLabel);
this.addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
sizeLabel.setText(
"Before: " + myUI.before + " after: " + myUI.after);
}
});
}
private static class MyLabelUI extends BasicLabelUI {
int before, after;
@Override
protected String layoutCL(
JLabel label, FontMetrics fontMetrics, String text, Icon icon,
Rectangle viewR, Rectangle iconR, Rectangle textR) {
before = text.length();
String s = super.layoutCL(
label, fontMetrics, text, icon, viewR, iconR, textR);
after = s.length();
System.out.println(s);
return s;
}
}
private void display() {
JFrame f = new JFrame("LayoutTest");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(this);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new LayoutTest().display();
}
});
}
}
2020-09-22
-
java截断字符串问题,用逗号截断,但是值里面有逗号
2015-03-31 01:34:46一个SQL语句的values里面的值,这里是三个字段,null,'0,1,2,3','2014-03-12 ...现在的问题是用逗号截断,第二个字段的值'0,1,2,3'也会被截断,求解决方法,怎么截断成三个 串 null 0,1,2,3 2014-03-12 18:38:26.467319 -
Java 后端处理字符串出现 空格 截断 字符串拼接成url后 url被截断问题 在拼接的地方参数被截断
2021-01-31 15:52:01Java 后端处理字符串出现 空格 截断 字符串拼接成url后 url被截断问题 在拼接的地方参数被截断Java 后端处理字符串出现 空格 截断 字符串拼接成url后 url被截断问题 在拼接的地方参数被截断解决方案 Java 后端处理...Java 后端处理字符串出现 空格 截断 字符串拼接成url后 url被截断问题 在拼接的地方参数被截断
Java 后端处理字符串出现 空格 截断 字符串拼接成url后 url被截断问题 在拼接的地方参数被截断
刚好在写一个接口的时候,出现一个问题!后端接口需要将拼接好的url返回给前端,但是前端拿到url字符串后出现 莫名其妙的空格,但是用空字符串替换还是有问题
将字符串进行url转码后发现问题
在字符串中有特殊字符串%20%20%20%20%20%20%20%20%20%20
这个特殊字符串,我原本以为是空格或者像\n、\t 这样的转义字符,后来发现它既不是空格也不是转义字符,它是ascii码的0值
0x00在windows系统中显示:
解决方案
str.replaceAll("\\u0000","")
使用 String 的 replaceAll 方法替换字符串所有匹配给定的正则表达式的子字符串
-
java字符串截断_java字符串截取
2021-02-27 15:02:31import org.apache.commons.lang.StringUtils;public class substr{public static void main(String[] args) {String str = "1234567890ABCDEFG";System.out.println("-----------" + str.... //从字符串索引为0...import org.apache.commons.lang.StringUtils;
public class substr{
public static void main(String[] args) {
String str = "1234567890ABCDEFG";
System.out.println("-----------" + str.substring(0)); //从字符串索引为0开始截取,一直到字符串末尾
System.out.println("-----1------" + str.substring(6,7)); //从索引6开始到索引7结束(不包含索引7,实际截取的是"7")
System.out.println("-----2------" + str.substring(str.length()-3, str.length()-1));
System.out.println("-----3------" + str.substring(0, str.indexOf("4")));
System.out.println("-----4------" + str.substring(str.indexOf("4") + 1, str.length()));
System.out.println("-----5------" + str.substring(str.indexOf("4"), str.indexOf("F")));
String strs = "0899991003535197";
System.out.println("===========" + strs.substring(6, strs.length()));
System.out.println("=====1======" + strs.substring(0, 2));
System.out.println("=====2======" + StringUtils.substringBefore(strs, "3"));
System.out.println("=====3======" + StringUtils.substringBeforeLast(strs, "3"));
System.out.println("=====4======" + StringUtils.substringAfter(strs, "3"));
System.out.println("=====5======" + StringUtils.substringAfterLast(strs, "3"));
String str1 = "as,asd,df,asd,efd,asd";
String [] list1 = str1.split(",");
for(int i=0;i
{
System.out.println("第"+(i+1)+"个元素为:"+list1[i]);
}
}
}
运行结果:
-----------1234567890ABCDEFG
-----1------7
-----2------EF
-----3------123
-----4------567890ABCDEFG
-----5------4567890ABCDE
===========1003535197
=====1======08
=====2======089999100
=====3======08999910035
=====4======535197
=====5======5197
第1个元素为:as
第2个元素为:asd
第3个元素为:df
第4个元素为:asd
第5个元素为:efd
第6个元素为:asd
-
java怎么定义字符长度_java – 当字符串长度超过列长度定义时,如何以静默方式截断字符串?...
2021-03-13 05:44:51其中一些数据是字符串,即DB中的varchars。在实体代码中,字符串具有如下属性:@Column(name = "MODEL", nullable = true, length = 256)private String model;数据库不是由eclipseLink从代码创建的,但长度与DB中的...我有一个Web应用程序,使用EclipseLink和MySQL存储数据。
其中一些数据是字符串,即DB中的varchars。
在实体代码中,字符串具有如下属性:
@Column(name = "MODEL", nullable = true, length = 256)
private String model;
数据库不是由eclipseLink从代码创建的,但长度与DB中的varchar长度匹配。
当这种字符串数据的长度大于length属性时,在调用javax.persistence.EntityTransaction.commit()期间会引发异常:
javax.persistence.RollbackException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.1.0.v20100614-r7608): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'MODEL' at row 1
然后事务回滚。
虽然我明白这是默认行为,这不是我想要的。
我希望数据被静默截断,并且事务被提交。
我可以这样做而无需为相关实体的字符串数据的每个设置方法添加对子字符串的调用?
-
java如何让 n显示为字符串_Java如何在n个单词之后截断字符串?
2021-03-16 02:50:50packageorg.nhooo.example.regex;publicclassGetNumberOfWordsFromString{publicstaticvoidmain(String[]args){Stringtext="Thequickbrownfoxjumpsoverthelazydog.";Stringone=truncateAfter... -
将截断字符串或二进制数据_java基础之Java基本数据类型
2020-12-14 10:48:42变量与数据类型在程序设计语言中,变量(Variable)是在内存中动态存储值的地方。简单地理解,程序的作用就是对变量进行各种...因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符串等值。Java中... -
delphi 将截断字符串或二进制数据_java基础之Java基本数据类型
2021-01-18 15:47:25变量与数据类型在程序设计语言中,变量(Variable)是在内存中动态存储值的地方。简单地理解,程序的作用就是对变量进行各种...因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符串等值。Java中... -
java 截取 省略号_java – 使用省略号截断字符串的理想方法
2021-02-26 18:21:45我喜欢让“瘦”字符算作一半字符的想法。简单和好的近似。然而,大多数椭圆的主要问题是(imho)他们在中间剁词。这里是一个考虑了单词边界的解决方案(但不涉及像素数学和Swing-API)。private final static String NON... -
java 字符查找 截断_java字符串常用操作(查找、截取、分割)
2021-03-08 23:56:03public class 字符串常用操作 {public static void main(String[] args) {/** 查找子串*/String str1="dwqae12232aebdalf";//查找指定字符第一次出现的位置int first1=str1.indexOf(97);//参数为字符的ascii码//查找... -
将截断字符串或二进制数据问题,Java,sql
2016-02-17 15:36:31我开的长度足够大了,可是还是报错 ``` !...``` public void actionPerformed(ActionEvent e) { if(e.getSource()==jb1){ Connection ct=null; Statement stm=null;... PreparedStatement ps=null;... -
MSSQL 将截断字符串或二进制数据关键字:
2009-08-08 12:52:00MSSQL 将截断字符串或二进制数据关键字: mssql 错误 将截断字符串或二进制数据 错误的信息提示大多是这样的: Java代码 1.Error! [8152]System.Data.SqlClient.SqlException: 将截断字符串或二进制数据。语句已终止... -
java sqlserver batch_java.sql.BatchUpdateException: 将截断字符串或二进制数据。
2021-03-09 00:08:26org.hibernate.exception.DataException: could not perform addBatchat org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:135)at org.hibernate.exception.i... -
SQLServerException: 将截断字符串或二进制数据
2020-01-07 10:05:28com.microsoft.sqlserver.jdbc.SQLServerException: 将截断字符串或二进制数据。 因为插入数据时,数据类型或者数据长度和数据库表中字段所对应的类型不符合。 处理:检查数据类型和数据长度。 ... -
java 字符查找 截断_Java中常用的字符串的截取经验
2021-03-08 23:56:12java中常用的字符串的截取方法1、length()字符串的长度例:charchars[]={'a','b'.'c'};Strings=newString(chars);intlen=s.length();2、charAt()截取一个字符例:charch;ch="abc".charAt(1);返回'b'3、getChars()... -
hibernate SQLQuery截断字符串
2012-10-15 11:43:00的查询时,出现了查询结果中 'aa' 列 只有一个字符 a, 经查证,oracle 会将 'aa' 这样的列作为 char 类型类处理,而hibernate 默认则将 char 影射为 Java 的Character类,造成字符串被截断,只显示首个字符,而... -
java插入数据库字段过长_数据库插入数据长度过大,出现提示:将截断字符串或二进制数据...
2021-03-11 14:57:47异常代码:org.hibernate.exception.GenericJDBCException: could not insert: [com.huama.equma.entity.DicPackage]java.sql.DataTruncation: Data truncationjava.sql.SQLException: 将截断字符串或二进制数据org.... -
通过java后台拼接json字符串修改页面样式----一页多用 + 双引号(")和单引号(')截断字符串解决方案
2013-11-15 22:11:04[java] view ...* 通过读取流程对应工单的字段权限 将字段权限拼接为json格式字符串 * 拼接json字符串格式: * [{"fieldNane":"name1","fieldRight":"right1"},{"fieldNane":"name2","fieldRigh -
用eclipse连接数据库捕获java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]将截断...
2020-03-27 22:49:21用eclipse连接数据库捕获异常显示java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]将截断字符串或二进制数据。该怎么修改啊? -
关于异常SQLServerException: 将截断字符串或二进制数据
2013-12-09 21:03:46java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]将截断字符串或二进制数据。 在完成毕业设计的时候总是碰见了这个烦人的异常,现给出解决方法 主要原因就是你增加的数据字段长度超过... -
java script 截断_JavaScript截取字符串的最后几个字符
2021-03-14 10:36:46在JavaScript中截取字符串一般是使用内置的substring()方法和substr()方法,这两个方法功能都很强大,也都能实现截取字符串中的最后几个字符。substring()方法JavaScript中的String对象提供了一个substring(int from... -
Java项目用sqlserver数据库做插入数据操作报错:将截断字符串或二进制数据。
2020-05-15 20:58:14*↑↑↑* 错误如标题所示 原因:增加的数据类型与数据库中字段所定义的不符。 解决方法: 1、修改数据库字段大小; 2、加强数据强壮性,严格的输入判断。 防止添加的信息类型或者长度与数据库表中字段所对应的类型... -
通过java后台拼接json字符串修改页面样式----一页多用 + 双引号(")和单引号(')截断字符串解决方案...
2012-04-06 21:43:001.组装json格式字符串 /** * 通过读取流程对应工单的字段权限 将字段权限拼接为json格式字符串 * 拼接json字符串格式: * [{"fieldNane":"name1","fieldRight":"right1"... -
java让字段减去一个值sql,java.sql.BatchUpdateException: 将截断字符串或二进制数据。...
2021-03-25 10:38:00org.hibernate.exception.DataException: could not perform addBatchat org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:135)at org.hibernate.exception.i... -
java String字符串截取
2009-08-03 01:34:00java String字符串截取。在英文字符和汉字同时出现的字符串中,如果要截取定长字节的子串,且不会把最后一个汉字截断。没有什么比较好的方法,只有从头一个一个数,数到最后时,进行判断一下。//以下方法设和GBK字符... -
java 字符串限制长度吗_[Java教程]限制字符串长度
2021-02-12 20:39:04[Java教程]限制字符串长度02016-05-23 09:00:28在开发web页面时,表单内字符串过长而超出规定长度会导致一些不必要的麻烦,比如:用户注册时系统限制的用户名只有8个英文字符,但是用户输入了10个或者更多的字符时,... -
JAVA识别字符串是数字(英文)还是汉字,web页面进行字符截断的帮助类
2016-08-25 13:57:00//长度是2说明是英文/数字/英文状态下的字符,长度为4说明是汉字/中文状态下的字符 String str = "测试2s-+¥2#"; for(int i=0; i<str.length(); i++){ System.out.println("[" + s...