package my.yaner;
public class StringTest {
public static void main(String[] args) {
// sentenceSplit();
formatString(null, null);
}
/**
* 分割句子
* 功能: 在一个指定的控件中,能够显示的文字自适应到该控件里,
* 如果当前显示不出该单词,则重新换行到下一行显示。
* 实现思路:
* 将要显示的语句通过分割将所有单词放到一个数组中,
* 然后循环取数组中的每个单词,如果当前句超过指定的
* 字节数(假如一句就显示30个字节),则拼接“换行符\n”,
* 开始新的一句,否则直接拼接从数组中读出的单词。
*/
private static void sentenceSplit(){
String showContent = "i will go home, and i will work better than future, so now i will learn more somethings. oh ye!"; //要显示的文字
String lastContent = ""; //拼接换行后的字符串
int totalWidth = 60; //每行能够显示的字节数
int preWordWidth = 2; //每个字节的宽度
String[] wordArray = null;
wordArray = showContent.split(" ");
int arrLen = wordArray.length - 1;
String tempSentence = ""; //临时拼接的当前句子
for(int i = 0; i <= arrLen; i++) {
String word = wordArray[i];
String temp = tempSentence; //保存拼接前的操作
tempSentence += word;
int lenW = tempSentence.length() * preWordWidth;
if (lenW > totalWidth) { //说明加上当前单词会超出边界,所以应当换行, 将该单词放到下一行中显示
lastContent += temp;
lastContent += "\n";
tempSentence = word;
tempSentence += " ";
} else if (lenW == totalWidth) {
lastContent += tempSentence;
lastContent += "\n";
tempSentence = "";
}
else {
tempSentence += " "; //每个单词之间要保留一个空格
if (i == arrLen)
lastContent += tempSentence;
}
}
System.out.println("lastSentence: ");
System.out.print(lastContent);
}
/**
* 仿照字符串格式化的形式,将字符串和后面给出的参数拼接起来
* 如: 我的梦想是{0}, {1}是我最大的动力, new String[]{dreamReal, 追求}
*/
private static void formatString(String src, String[] args){
src = "我的梦想是{0}, {1}是我最大的动力.";
args = new String[]{"dreamReal", "追求"};
StringBuffer result = new StringBuffer();
char[] chArr = src.toCharArray();
int len = chArr.length;
for(int i = 0; i < len; i++) {
// System.out.println(i + " : " + chArr[i]);
char ch = chArr[i];
if(ch == '{') {
ch = chArr[++i];
StringBuffer sbNum = new StringBuffer();
while(ch != '}') {
sbNum.append(ch);
++i;
ch = chArr[i];
}
int num = Integer.parseInt(sbNum.toString());
String arg = args[num];
result.append(arg);
continue;
// System.out.println("提取出的参数为:" + sbNum);
}
result.append(ch);
}
System.out.println("组合后的字符串为:" + result.toString());
}
}
分享到:
相关推荐
编写一个applet程序,在窗口界面中实现当输入一个字符串和一个字符后,原字符串中所有该字符将被删除并显示出结果
将近250行的算法 实现了通过字符串进行加减乘除四则运算 纯通过处理字符串和数组实现 希望能帮助大家: 例如:String input "33+26 77+70"; String result ""; try { result Account...
Java中将字符串作为String类型对象来处理。当创建一个String对象时,被创建的字符串是不能被改变的。每次需要改变字符串时都要创建一个新的String对象来保存新的内容。原始的字符串不变。之所以采用这种方法是因为...
java实现含有英文字符串的符号替换为中文符号,在网上看了一些都没有详细的实现方式,看了这个就不用去摸索了,看了就会用了,下次有碰到这方面的,同样中文特殊符号转换为英文符号类似的逻辑
结合字符串和数组,编程实现计算表达式(1+2)(1+2^2)*……*(1+2^100)的结果
此组件是对字符串进行处理的,其中包含编码方式的转码,取子字符串,字符串加密,解密,数字型字符串转化为十六进制等。用户只需要将环境配好,将测试例子中的main方法运行就能看到每个方法的用法。
这段代码实现了一个简单的文本处理工具TextProcessor,其中使用了Java的字符串操作。...这个简单的示例代码展示了如何使用Java字符串操作来实现一个文本处理工具的简单功能,方便了对文本信息的管理和处理。
java实现对象转化为get请求的param参数String字符串,本人自测非常好用,一般对象可以转化键值对的格式,但是最近项目需要自己手动拼接对象作为get请求的参数,百度了一堆还不如自己写一个,欢迎各位使用,有什么...
整型数组中的元素,获取其元素并不困难。...我认为:因为字符串的本身属性,对其进行处理时,占用大量内存。如何寻找更好更快捷的方法才是努力的方向。下面是我的一个程序举例,分别对单个字符、连续字符进行求次数。
如何用java实现不同编码方式字符串的转换(包含异常处理、重复不终止输入、缓冲区bufferedreader的使用)
该组件是对日期的一个处理组件,是日期型字符串和日期之间的相互转换
分享一个Java字符串操作类CTool.java源代码下载,包括了字符串转换功能,此类中收集Java编程中WEB开发常用到的一些工具。为避免生成此类的实例,构造方法被申明为private类型的。这个类的功能可实现将数据从数据库中...
创建一个countChars方法,该方法接受一个字符串作为输入,并对字符串中的每个字符进行分类统计。 在countChars方法中,使用一个嵌套的for循环遍历字符串中的每个字符。然后,根据字符的类型将其对应的计数器加一。 ...
java实现在Excel中插入图片有时碰到下载excel中加入图片或已经制作好的图章。
使用自定义了时间和字符串的转换规则 存的时候 存字符串 读取的时候 转换为日期类型 但是在按时间查找的时候 也可以使用 下载后 直接运行 Test类 修改下MongodbConfiguration的mongoUrl 写的时候将时间转为字符串 ...
1、使用Document和Xpath...3、使用Xpath语法进行对字符串的做处理 4、富文本的字符串保存做二次的编辑 需求: 截取<p></p>里面的文字,并且找对应的文字进行匹配,如匹配上在p标签上增加一个id,数值是随机生成的
文档中涵盖了两个字符串旋转的基本概念,包括如何判断一个字符串是否为另一个字符串的旋转,并介绍了如何在Java中实现该算法。此外,文档还包括一个逐步指南,介绍如何在Java中实现两个字符串旋转的代码,包括详细的...
Java 的16 进制与字符串的相互转换函数 JAVA 时间格式化处理 将毫秒转化为日期 文本的倒序输出 判断一个数字是奇数还是偶数 用Hibernate 实现分页 35 选7 彩票程序 获取GMT8 时间 中文乱码转换 Big5 字与Unicode 的...
1.substring 方法 定义和用法 substring 方法用于提取字符串中介于两个指定下标之间的字符。 语法 stringObject.substring(start,stop) 参数 描述 start 必需。一个非负的整数,规定要提取的子串的第一个字符在 ...
正好遇到一个需求需要将字符串中特定的字符全部提取出来,这个如果是按常规的字符串处理的话非常的繁琐。于是想到用正则表达式来完成。项目需求是这样的:需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A...