其实在TextView中遇到排版自动换行而导致混乱不堪的情况是非常常见的,而且导致这种问题产生的原因就是英文和中文混合输入,半角字符和全角字符混合在一起了。一般情况下,我们输入的数字、字母以及英文标点都是半角字符,所以占位无法确定,它们与汉字的占位不同,由于这个原因,导致很多文字的排版都是参差不齐的。

原因找到了,自然解决方法就来了,一般有以下两种方法来解决这种问题。

1、将TextView中的字符全角化。即将所有的数字、字母及标点全部转为全角字符,使它们与汉字同占两个字节,这样就可以避免由于占位导致的排版混乱问题了。

半角转为全角的代码如下:

/**

* 半角转换为全角

*

* @param str

* @return

*/

public static String ToDBC(String str) {

char[] c = str.toCharArray();

for (int i = 0; i < c.length; i++) {

if (c[i] == 12288) {

c[i] = (char) 32;

continue;

}

if (c[i] > 65280 && c[i] < 65375)

c[i] = (char) (c[i] - 65248);

}

return new String(c);

}

2. 去除特殊字符或将所有中文标号替换为英文标号。利用正则表达式将所有特殊字符过滤,将中文标号替换为英文标号。

/**

* 去除特殊字符或将所有中文标号替换为英文标号

*

* @param str

* @return

*/

public static String stringFilter(String str) {

str = str.replaceAll("【", "[").replaceAll("】", "]")

.replaceAll("!", "!").replaceAll(":", ":");// 替换中文标号

String regEx = "[『』]"; // 清除掉特殊字符

Pattern p = Pattern.compile(regEx);

Matcher m = p.matcher(str);

return m.replaceAll("").trim();

}

解决TextView排版混乱或者自动换行的问题的更多相关文章

  1. 在使用rem布局的时候,遇到的样式排版混乱问题,

    在使用rem布局的时候,遇到的样式排版混乱问题, 问题1:设置字体为rem单位,但是没有设置line-height为100%, 即    * {             line-height: 1; ...

  2. 解决TextView drawableRight左侧图片大小不可控的问题

    通过代码来修改图片的大小: Drawable rightDrawable= context.getResources().getDrawable(R.drawable.more); rightDraw ...

  3. 使用echart的雷达图的时候,如果文字越界的解决办法记录,标签文字自动换行

    使用echart的雷达图的时候,如果文字越界的解决办法记录,标签文字自动换行 前几天项目中有一个图表的是用echart生成的,遇到一个问题,就是在手机端显示的售时候,如果文字太长就会超出div,之前的 ...

  4. 015——VUE中使用key唯一令牌解决表单值混乱问题

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. android中的textview显示汉字不能自动换行的一个解决办法

    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_ ...

  6. 解决TextView在显示文字的时候,一行还没显示满就跳到下一行

    转载请注明:转自 http://blog.csdn.NET/u011176685/article/details/48295185 一.问题描述: Android的TextView在显示文字的时候,如 ...

  7. Android AutoWrapTextView 解决中英文排版问题

    1.概述 最近项目有新需求,UED给了个卡券密码的UI样式,如图: 我一看很简单啊,一个TextView解决问题,然后做好以后在模拟器里一看..... 纳尼,这个时候才想起来,TextView 中英文 ...

  8. 解决TextView与RadioGroup不对齐的问题

    TextView和RadioGroup是在同一个LinearLayout中的,控件摆放方式是android:orientation="horizontal",虽然三个控件是水平摆放 ...

  9. Android开发之TextView排版问题

    下面直接是关于解决该问题的代码(根据别人的代码进行了修正以及测试,保证可以修改字体尺寸.颜色.根据padding调整,如果需要支持其他的格式可以将对应的属性添加至Paint类型的对象中):   1 p ...

随机推荐

  1. SQL Server 2000中查询表名,列名及字段类型

    经常碰到一些忘记表名称的情况,此时只记得个大概,此时可通过查询系统表Sysobjects找到所要的表名,如要查找包含用户的表名,可通过以下SQL语句实现, Select * From sysobjec ...

  2. Struts 2 - Architecture

    From a high level, Struts2 is a pull-MVC (or MVC2) framework. The Model-View-Controller pattern in S ...

  3. 使用 ResponseBodyAdvice 拦截Controller方法默认返回参数,统一处理返回值/响应体

    使用 @ControllerAdvice & ResponseBodyAdvice 拦截Controller方法默认返回参数,统一处理返回值/响应体 1.Controller代码 以下是Con ...

  4. Spring介绍及配置(XML文件配置和注解配置)

    本节内容: Spring介绍 Spring搭建 Spring概念 Spring配置讲解 使用注解配置Spring 一.Spring介绍 1. 什么是Spring Spring是一个开源框架,Sprin ...

  5. HTML5练习2

    1.邮箱注册网页 主要代码: <!doctype html> <html> <meta charset="utf-8"> <title&g ...

  6. CodeIgniter2.0中sqlserver驱动返回受影响行数问题解决

    最近使用CI写项目时遇到的问题,当使用sqlserve链接操作时 修改和删除返回的受影响行数不对 解决办法如下: 找到ci框架目录中include\database\drivers\sqlsrv\sq ...

  7. thinkphp3.2开启静态缓存与缓存规则设置

    网站的静态缓存对大访问量有很好的缓解作用,尤其对网站的大并发,可有效的缓解数据库的压力.在thinkphp中实现静态缓存很简单,thinkphp都已经封装好了直接调用即可. 静态缓存   首先设置 H ...

  8. IAR搭建unity框架

    1. 新建工程 2. 增加组 unit,并加入相应源码 3. 增加需要测试的API源文件 4. 编写相应的测试用例 编译,download and debug view->TerminalIO ...

  9. CSUOJ 2031 Barareh on Fire

    Description The Barareh village is on fire due to the attack of the virtual enemy. Several places ar ...

  10. Kubernetes1.3:POD生命周期管理

    转:http://blog.csdn.net/horsefoot/article/details/52324830 (一)  核心概念 Pod是kubernetes中的核心概念,kubernetes对 ...