java中字符串中的⼤⼩写转换
中把⼀个字符串中⼤写字母转换为⼩写,⼩写字母转换为⼤写
观看提⽰:
这⾥提供2中思维,但是第⼀种是正确的,第⼆种是错误的;第⼆种的思维可以了解了解,但是需要注意的是如果某个字符串定义为String类型,那么这个串就不能改变了;如果需要改变,那么应该使⽤StringBuffer,这个例⼦也能够很好的说明StringBuffer和String之间的区别!
下⾯的代码中exChange()能够得到正确的结论,exChange2()不能得到正确的结论,原因就是上⾯说的:如果某个字符串定义为String类型,那么这个串就不能改变了
1. //把⼀个字符串中的⼤写转为⼩写,⼩写转换为⼤写:思路1
2. public static String exChange(String str){
3. StringBuffer sb = new StringBuffer();
4. if(str!=null){
5. for(int i=0;i<str.length();i++){
6. char c = str.charAt(i);
7. if(Character.isUpperCase(c)){
8. sb.LowerCase(c));
9. }else if(Character.isLowerCase(c)){
10. sb.UpperCase(c)); //有⼀次⾯试问append()是哪个类⾥⾯的
11. }
12. }
13. }
14.
15. String();
16. }
17.
18. //把⼀个字符串中的⼤写转为⼩写,⼩写转换为⼤写:思路2
19. public static String exChange2(String str){
20. for(int i=0;i<str.length();i++){
21. //如果是⼩写
22. if(str.substring(i, i+1).equals(str.substring(i, i+1).toLowerCase())){
23. str.substring(i, i+1).toUpperCase();
24. }else{
25. str.substring(i, i+1).toLowerCase();
26. }
27. }
28. return str;
29. }
【温馨提⽰】.
Apache的commons-lang包中有很多我们常⽤的⽅法.⽐如IO操作的中的拷贝整个⽬录,判断⼀个字符是不是符合Email的格式,判断⼀个字符是不是数字型.....
所以千万别什么都⾃⼰写.尽量看看在其中是不是已经有现成的⽅法了.
⽐如上⾯这个问题,.就可以这么写【项⽬中需要有commons-lang这个包,可以去下载】
String str = "aBcD";
System.out.println(StringUtils.swapCase(str));
我看了源码:StringUtils.swapCase(str)这个⽅法的实现其实跟第⼀种差不多!下⾯是apache官⽅的swapCase这个⽅法
1. /**
2. * <p>Swaps the case of a String changing upper and title case to
3. * lower case, and lower case to upper case.</p>
4. *
5. * <ul>
6. * <li>Upper case character converts to Lower case</li>
7. * <li>Title case character converts to Lower case</li>
8. * <li>Lower case character converts to Upper case</li>
9. * </ul>
10. *
11. * <p>For a word based algorithm, see {@link org.WordUtils#swapCase(String)}.
12. * A {@code null} input String returns {@code null}.</p>
13. *
14. * <pre>
15. * StringUtils.swapCase(null) = null
16. * StringUtils.swapCase("") = ""
17. * StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"
18. * </pre>
19. *
20. * <p>NOTE: This method changed in Lang version 2.0.
21. * It no longer performs a word based algorithm.
22. * If you only use ASCII, you will notice no change.
字符串函数中将大写转换为小写23. * That functionality is available in org.WordUtils.</p>
24. *
25. * @param str the String to swap case, may be null
26. * @return the changed String, {@code null} if null String input
27. */
28. public static String swapCase(String str) {
29. if (StringUtils.isEmpty(str)) {
30. return str;
31. }
32.
33. char[] buffer = CharArray();
34.
35. for (int i = 0; i < buffer.length; i++) {
36. char ch = buffer[i];
37. if (Character.isUpperCase(ch)) {
38. buffer[i] = LowerCase(ch);
39. } else if (Character.isTitleCase(ch)) {
40. buffer[i] = LowerCase(ch);
41. } else if (Character.isLowerCase(ch)) {
42. buffer[i] = UpperCase(ch);
43. }
44. }
45. return new String(buffer);
46. }
47.
48. //第三种思路:利⽤Character包装类的isLowerCase()和isUpperCase()⽅法:
49.
总结:
1.很强⼤,包装了⼀些常⽤的⽅法,在了解的基础上,现成的当然省⼒。
2.经常查java的Api⽂档很重要,java的巨⼈。
3.前两种思路包含了很巧妙地思想,扩展思维有很⼤帮助。在不了解java的情况下,完全可以靠学过的知识解决。
经常犯的错误
1.注意:如果将 a[i]<='Z'写成了a[i]<="Z",就会报错:运算符<=不能应⽤于char,java.lang.String
因为双引号表⽰字符串(String类型),单引号表⽰字符(Char类型)。
2.length()⽅法 i<j.length() 写成i<jlength,就会报错.
java中判断字符串是否为纯数字
⽅法⼀:利⽤正则表达式
public class Testone {
public static void main(String[] args){
String str="123456";
boolean result=str.matches("[0-9]+");
if (result == true) {
System.out.println("该字符串是纯数字");
}else{
System.out.println("该字符串不是纯数字");
}
}
}
⽅法⼆:利⽤Pattern.
import Matcher;
import Pattern;
public class Testone {
public static void main(String[] args){
String str="123456";
Pattern pattern = Patternpile("[0-9]{1,}");
Matcher matcher = pattern.matcher((CharSequence)str); boolean result=matcher.matches();
if (result == true) {
System.out.println("该字符串是纯数字");
}else{
System.out.println("该字符串不是纯数字");
}
}
}
//原来以为正则表达式是js⾥⾯的,Java中也有呀!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论