java中根据一段字符串,获取其中的字母,有要求;求个具体代码 java截取指定字符串中的某段字符如何实现?

java\u4e2d\u6839\u636e\u4e00\u6bb5\u5b57\u7b26\u4e32\uff0c\u622a\u53d6\u9700\u8981\u7684\u5b57\u7b26\uff0c\u6709\u5177\u4f53\u8981\u6c42\uff0c\u8bf7\u7ed9\u51fa\u5177\u4f53\u7684\u4ee3\u7801

\u5728B1\u8f93\u5165\u516c\u5f0f\uff1a
=MID(A1,FIND("-",A1)+1,FIND("-",A1,FIND("-",A1)+1)-FIND("-",A1)-1)
\u5411\u4e0b\u586b\u5145\u5373\u53ef\u3002

\u5982\u679c\u524d\u97624\u4e2a\u5b57\u7b26\u90fd\u4e00\u6837\u7684\uff0c\u516c\u5f0f\u53ef\u7b80\u4e9b\uff1a
=MID(A1,FIND("-",A1)+1,FIND("-",A1,5)-FIND("-",A1)-1)

\u5982\u4e0b\u56fe\uff0c\u7ed9\u4f60\u8d34\u51fa\u4e86\u4ee3\u7801\u6bb5\u3002\u53ef\u4ee5\u5229\u7528\u5b57\u7b26\u4e32\u7684substring\u51fd\u6570\u6765\u8fdb\u884c\u622a\u53d6\u3002

\u5176\u4e2d\uff0csubstring\u51fd\u6570\u6709\u4e24\u4e2a\u53c2\u6570\uff1a
1\u3001\u7b2c\u4e00\u4e2a\u53c2\u6570\u662f\u5f00\u59cb\u622a\u53d6\u7684\u5b57\u7b26\u4f4d\u7f6e\u3002\uff08\u4ece0\u5f00\u59cb\uff09
2\u3001\u7b2c\u4e8c\u4e2a\u53c2\u6570\u662f\u7ed3\u675f\u5b57\u7b26\u7684\u4f4d\u7f6e+1\u3002\uff08\u4ece0\u5f00\u59cb\uff09
indexof\u51fd\u6570\u7684\u4f5c\u7528\u662f\u67e5\u627e\u8be5\u5b57\u7b26\u4e32\u4e2d\u7684\u67d0\u4e2a\u5b57\u7684\u4f4d\u7f6e\uff0c\u5e76\u4e14\u8fd4\u56de\u3002
\u6269\u5c55\u8d44\u6599\uff1a
substring\u8fd9\u4e2a\u51fd\u6570\u4e5f\u53ef\u4ee5\u53ea\u5199\u4e00\u4e2a\u53c2\u6570\uff0c\u5c31\u662f\u8d77\u59cb\u5b57\u7b26\u4f4d\u7f6e\u3002\u8fd9\u6837\u5c31\u4f1a\u81ea\u52a8\u622a\u53d6\u4ece\u5f00\u59cb\u5230\u6700\u540e\u3002
\u4f8b\u5982\uff1a

\u7ed3\u679c\u662f\uff1a456789\uff08\u6ce8\u610f\uff1a\u5305\u62ec4\u3002\uff09
\u793a\u4f8b\uff1a
"hamburger".substring(3,8) returns "burge"
"smiles".substring(0,5) returns "smile"
\u53c2\u8003\u8d44\u6599\uff1a\u767e\u5ea6\u767e\u79d1\u2014\u2014substring

要求1中要去掉所有数字,要求2、3中又要保留数字并进行翻译,所以我两种都写了。具体代码为:


public class Test {
public static void main(String args[]) {
String str = "0as2sw$#3Six";
System.out.println("原字符串:[" + str + "]");
System.out.println("");
//不翻译数字
Set<String> set1 = new LinkedHashSet<>();
for (String s : str.split("[^A-Z a-z]")) {
if (s.length() > 0) {
set1.add(s);
}
}
System.out.println("不翻译数字的结果:" + set1);
System.out.println("");


       /*因为又要去除非字母和数字(以下简称去杂),又要将去杂结果分离成数字和字母,再翻译数字,整个流程挺麻烦的,索性在去杂之前,先将数字翻译成英文,为了使数字翻译后的英文和原字符串的字母分开,在数字左右添加占位符#,这样的话,形如:[a1b2c3]就会被处理为:[a#one#b#two#c#three#],这样去杂后,就会被分割为:[a,one,b,two,c,three]了。这里定义了枚举值English,用于实现0-9的英文映射,[10]不好映射成[ten],现在只能映射为[one,zero],如果按照题干非要映射为ten的话你再考虑考虑吧*/
for (English english : English.values()) {
str = str.replaceAll(english.getNum() + "", "#" + english.name() + "#");
}
System.out.println("将数字替换为“占位符 + 英文 + 占位符”的中间结果:[" + str + "]");
System.out.println("");


       //翻译数字的结果
Set<String> set2 = new LinkedHashSet<>();
for (String s : str.split("[^A-Za-z]")) {
if (s.length() > 0  ) {
//判断当前字符串是否是数字的英文,如果不是,就把它拆成单字母
if (mappingEnglish(s)){
set2.add(s);
}else {
for (char c : s.toCharArray()) {
set2.add(String.valueOf(c));
}
}
}
}
System.out.println("翻译数字的结果:" + set2);
}


   //判断当前字符串是否是数字的英文
private static boolean mappingEnglish(String str) {
for (English english : English.values()) {
str = str.toLowerCase();
if (english.name().equals(str)) {
return true;
}
}
return false;
}


   enum English {
zero(0),
one(1),
two(2),
three(3),
four(4),
five(5),
six(6),
seven(7),
eight(8),
nine(9);

private int num;

public int getNum() {
return num;
}

English(int num) {
this.num = num;
}
}
}


我怕发出来代码又挤在一起,顺便也截个图:

8-21行

22-50行

51-61行

62-85行完



运行结果:



package test; import java.util.Scanner; public class test {    public static void main(String[] args) {        while(true){            Scanner input=new Scanner(System.in);            System.out.print("请输入带字母的字符串:");                     String str1=input.next();                  int counA=0;            int couna=0;                         for(int i=0;i<str1.length();i++){                if((byte)str1.charAt(i)>64&&(byte)str1.charAt(i)<91){                    counA++;                }else if((byte)str1.charAt(i)>96&&(byte)str1.charAt(i)<123){                    couna++;                }            }            if(counA==0&&couna==0){                System.out.println("输入错误,请重新输入带字母的字符串:");            }else if(counA==0){                System.out.println("输入的字符串中含大写字母0个");            }else{                System.out.println("大写字母有"+counA+"个");            }        }    }}

   



  • java鎬庝箞鑾峰彇瀛楃涓涓寚瀹鐨鍊?
    绛旓細鍦Java涓幏鍙栧瓧绗︿覆涓寚瀹氱殑鍊煎彲浠ヤ娇鐢ㄤ互涓嬪嚑绉嶆柟寮忥細鐐瑰嚮瀛︿範澶у巶鍚嶅笀绮惧搧璇1.浣跨敤substring()鏂规硶鍙互浣跨敤String绫绘彁渚涚殑substring(intbeginIndex锛宨ntendIndex)鏂规硶锛屼粠鍘熷瀛楃涓蹭腑鎴彇鍑烘寚瀹氳寖鍥寸殑瀛楃瀛愪覆銆俠eginIndex琛ㄧず鎴彇鐨勮捣濮嬩綅缃紝endIndex琛ㄧず缁撴潫浣嶇疆锛堜笉鍖呭惈锛夈2.浣跨敤StringUtils绫诲彲浠ヤ娇鐢ˋpacheCom...
  • JAVA濡備綍鑾峰緱涓娈靛瓧绗︿覆鐨鍊掓暟绗簩涓瓧绗
    绛旓細1銆佽幏鍙栬瀛楃涓 String str = "abcdef";2銆侀氳繃瀛楃涓查暱搴︼紝鎴彇鍊掓暟绗簩涓瓧绗︿覆鐨勮捣姝綅缃埌缁撴潫浣嶇疆 String str2 = str.substring(str.length()-2,str.length()-1);//杩欓噷鎴彇鐨勪俊鎭氨鏄痚锛屽掓暟绗簩涓瓧绗﹁ˉ鍏咃細public String substring(int beginIndex, int endIndex)杩斿洖涓涓柊瀛楃涓诧紝...
  • java鎴彇鎸囧畾瀛楃涓涓鐨勬煇娈靛瓧绗濡備綍瀹炵幇?
    绛旓細鏂规硶涓锛/ beginIndex = userNameUrl.indexOf("@")+1;endIndex = userNameUrl.lastIndexOf("@");System.out.println(userNameUrl.substring(beginIndex,endIndex));/ 鏂规硶浜岋細/ System.out.println(userNameUrl.split("@")[1].toString());/ 鏂规硶涓夛細/ System.out.println(userNameUrl.substring(...
  • java涓牴鎹竴娈靛瓧绗︿覆,鑾峰彇鍏朵腑鐨勫瓧姣,鏈夎姹;姹備釜鍏蜂綋浠g爜
    绛旓細瑕佹眰1涓鍘绘帀鎵鏈夋暟瀛楋紝瑕佹眰2銆3涓張瑕佷繚鐣欐暟瀛楀苟杩涜缈昏瘧锛屾墍浠ユ垜涓ょ閮藉啓浜嗐傚叿浣撲唬鐮佷负锛歱ublic class Test {public static void main(String args[]) {String str = "0as2sw$#3Six";System.out.println("鍘瀛楃涓锛歔" + str + "]");System.out.println("");//涓嶇炕璇戞暟瀛桽et<String>...
  • java涓浠庡懡浠よ杈撳叆涓涓插瓧绗︿覆,鎬庝箞鑾峰彇鍏朵腑鐨勬瘡涓涓瓧绗?
    绛旓細浣犲彲浠ョ敤String绫閲岄潰鐨split("")鏂规硶鏉ユ媶鍒瀛楃涓 缁涓渚嬪瓙浣 锛歱ublic class Test {public static void main(String[] args) {String str = "12ljfs92";String[] ss = str.split("");for(int i = 0; i < ss.length; i++){System.out.print(ss[i] + " ");}}} ...
  • ...浠涓涓寰堥暱鐨勫瓧绗︿覆涓悳绱㈠嚭鏌涓娈靛瓧绗,鍒楀嚭鎵鏈夌鍚堢殑瀛楃_鐧惧害鐭 ...
    绛旓細\w 鍗曡瘝瀛楃锛歔a-zA-Z_0-9]\W 闈炲崟璇嶅瓧绗︼細[^\w]/ public void getMatchedPattern(String regx,String source){ pattern = Pattern.compile(regx);matcher = pattern.matcher(source);int index = 1;while(!matcher.hitEnd()){ if(matcher.find()){ System.out.println("鎵惧埌绗"+index ...
  • java璇█涓浣鑾峰彇瀛楃涓涓眽瀛鐨勪釜鏁
    绛旓細銆愬疄鐜拌繃绋嬨戝湪Eclipse涓柊寤洪」鐩瓹hineseCharacter锛屽苟鍦ㄥ叾涓垱寤涓涓ChineseCharacter.java鏂囦欢銆傚湪璇ョ被鐨勪富鏂规硶涓垱寤烘爣鍑嗚緭鍏ユ祦鐨勬壂鎻忓櫒瀵硅薄锛屾帴鏀剁敤鎴疯緭鍏鐨勫瓧绗︿覆銆傛垜浠湪绋嬪簭涓娇鐢╩atches()鏂规硶鏉ョ粺璁¤瀛楃涓蹭腑姹夊瓧鐨勪釜鏁般傛牳蹇冧唬鐮佸涓嬫墍绀猴細protectedvoiddo_button_actionPerformed(ActionEvente){String...
  • java鎴彇鎸囧畾瀛楃涓涓鐨勬煇娈靛瓧绗濡備綍瀹炵幇?
    绛旓細鐢╯ubstring鍑芥暟鍙互瀹炵幇鎴彇瀛楃涓銆備唬鐮佸涓嬶細publicclasswoo{ publicstaticvoidmain(Stringargs[]){ Stringstr="鎴夸及瀛(2014)绗琘PQD0006鍙";System.out.println(str.substring(10,18));} }
  • 浣跨敤JAVA浠瀛楃涓涓彁鍙栧嚭绗﹀悎瑕佹眰鐨閮ㄥ垎
    绛旓細杩欎釜褰撳煄甯傚湴鍧杈惧埌涓瀹氱殑閲忕殑鏃跺欑敤姝e垯鍙嶈岄夯鐑︼紝鎺ㄨ崘涓娆 public class ClassExample1 {public static void main(String args[]) {// 瀹氫箟鍦板潃搴揕ist<String> cities = new ArrayList<String>();// 濉厖鏁版嵁 ...cities.add("涓婃捣");cities.add("鑺滄箹");// 寰呮祴鏁版嵁String arg = "涓滃崕澶у...
  • java涓濡備綍鎻愬彇涓涓瓧绗︿覆涓殑鐢佃瘽鍙风爜?
    绛旓細java涓濡備綍鎻愬彇涓涓瓧绗︿覆涓殑鐢佃瘽鍙风爜锛屽厛鍐欏嚭鎵嬫満鍙风爜鍜屽浐瀹氬彿鐮佺殑姝e垯琛ㄨ揪寮忥紝鐒跺悗鍒涘缓妯″紡锛岃幏鍙鍒板尮閰嶅櫒锛屼粠鑰屽埛閫夊嚭绗﹀悎瑕佹眰鐨勭數璇濆彿鐮侊紝濡備笅锛歩mport java.util.regex.Matcher;import java.util.regex.Pattern;public class TestC {public static void main(String[] args){//瑕佹彁鍓嶅彿鐮佺殑瀛楃涓...
  • 扩展阅读:java中输入一个字符串 ... substring截取字符串 ... java println ... java分割字符串 ... java python ... java中json转换成对象 ... java replace ... java split ... java截取字符串中的一部分 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网