import java.io.BufferedReader
import java.io.InputStreamReader
import java.util.Arrays
public class NumberSplit {
public StringBuffer getString(String str) {
StringBuffer strbuf = new StringBuffer("t")
boolean flag = true
for (int i = 0i <str.length()i++) {
char c = str.charAt(i)
// 判断是否是数字
if (c >= '0'&&c <= '9') {
// 判断和字符串中的数字是否重复
for (int j = 1j <strbuf.length()j++) {
if (c == strbuf.charAt(j)) {
// 如果重复,标志位数值为false,并跳出循环否则标志位设置为true.
flag = false
break
} else
flag = true
}
// 只有在即是数字又不重复的情况下才将改字符拼接到字符串上.
if (flag) {
strbuf.append(c)
}
}
}
return strbuf
}
public static void main(String args[]) throws Exception {
System.out.println("请输入一段字符串,并以回车结束")
BufferedReader buf = new BufferedReader(
new InputStreamReader(System.in))
String str = buf.readLine()
StringBuffer strbuf = new NumberSplit().getString(str)
// 将返回的StringBuffer转换为字符数组
char c[] = strbuf.deleteCharAt(0).toString().toCharArray()
// 对字符数组排序
Arrays.sort(c)
// 输出字符数组
for (int i = 0i <strbuf.length()i++) {
System.out.print(c[i])
}
}
import java.io.BufferedReader
import java.io.InputStreamReader
import java.util.Arrays
public class NumberSplit {
public StringBuffer getString(String str) {
StringBuffer strbuf = new StringBuffer("t")
boolean flag = true
for (int i = 0i <str.length()i++) {
char c = str.charAt(i)
// 判断是否是数字
if (c >= '0'&&c <= '9') {
// 判断和字符串中的数字是否重复
for (int j = 1j <strbuf.length()j++) {
if (c == strbuf.charAt(j)) {
// 如果重复,标志位数值为false,并跳出循环否则标志位设置为true.
flag = false
break
} else
flag = true
}
// 只有在即是数字又不重复的情况下才将改字符拼接到字符串上.
if (flag) {
strbuf.append(c)
}
}
}
return strbuf
}
public static void main(String args[]) throws Exception {
System.out.println("请输入一段字符串,并以回车结束")
BufferedReader buf = new BufferedReader(
new InputStreamReader(System.in))
String str = buf.readLine()
StringBuffer strbuf = new NumberSplit().getString(str)
// 将返回的StringBuffer转换为字符数组
char c[] = strbuf.deleteCharAt(0).toString().toCharArray()
// 对字符数组排序
Arrays.sort(c)
// 输出字符数组
for (int i = 0i <strbuf.length()i++) {
System.out.print(c[i])
}
}
1.split()+正则表达式来进行截取。
将正则传入split()。返回的是一个字符串数组类型。不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时。
String str = "abc,12,3yy98,0"
String[] strs=str.split(",")
for(int i=0,len=strs.lengthi<leni++){
System.out.println(strs[i].toString())
}
运行结果:
abc
12
3yy98
0
2.通过subString()方法来进行字符串截取。
subString通过不同的参数来提供不同的截取方式
2.1只传一个参数
例如:
String sb = "bbbdsajjds"
sb.substring(2)
将字符串从索引号为2开始截取,一直到字符串末尾。(索引值从0开始);
2.2传入2个索引值
String sb = "bbbdsajjds"
sb.substring(2, 4)
从索引号2开始到索引好4结束(并且不包含索引4截取在内,也就是说实际截取的是2和3号字符);
运行结果如下:
bdsajjds
bd
3.通过StringUtils提供的方法
StringUtils.substringBefore(“dskeabcee”, “e”)
/结果是:dsk/
这里是以第一个”e”,为标准。
StringUtils.substringBeforeLast(“dskeabcee”, “e”)
结果为:dskeabce
这里以最后一个“e”为准。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
如果s='123abc'取得s1='abc'用正则,例如:s="123abc4a"printre.findall("[a-z]+",s)结果是:['abc','a']。
扩展资料
字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“b”,s[9]="j",这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。
补充:字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。