怎么用Java把输入的两串字符串中的数字提取出来,并且将两串数字相乘输出? 怎么用java把输入的字符串中的数字提取出来.

\u600e\u4e48\u7528Java\u628a\u8f93\u5165\u7684\u5b57\u7b26\u4e32\u4e2d\u7684\u6570\u5b57\u63d0\u53d6\u51fa\u6765\uff0c\u5e76\u4e14\u628a\u6c42\u6570\u5b57\u76f8\u52a0\u4e4b\u548c\uff1f

import java.io.*;
public class Demo1 {
public static void main(String[] args) throws Exception{
int sum=0,temp;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println(" \u8bf7\u8f93\u5165\uff1a ");
String s=br.ReadLine();
for(int i=0;i<s.length();i++){
temp=s.CharAt(i);
if(temp>=0&&temp<=10){sum=sum+temp;}
else{continue;}
}
System.out.println("The sum is:"+sum);
}
}

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 = 0; i < str.length(); i++) {
char c = str.charAt(i);
// \u5224\u65ad\u662f\u5426\u662f\u6570\u5b57
if (c >= '0' && c <= '9') {
// \u5224\u65ad\u548c\u5b57\u7b26\u4e32\u4e2d\u7684\u6570\u5b57\u662f\u5426\u91cd\u590d
for (int j = 1; j < strbuf.length(); j++) {
if (c == strbuf.charAt(j)) {
// \u5982\u679c\u91cd\u590d,\u6807\u5fd7\u4f4d\u6570\u503c\u4e3afalse,\u5e76\u8df3\u51fa\u5faa\u73af;\u5426\u5219\u6807\u5fd7\u4f4d\u8bbe\u7f6e\u4e3atrue.
flag = false;
break;
} else
flag = true;
}

// \u53ea\u6709\u5728\u5373\u662f\u6570\u5b57\u53c8\u4e0d\u91cd\u590d\u7684\u60c5\u51b5\u4e0b\u624d\u5c06\u6539\u5b57\u7b26\u62fc\u63a5\u5230\u5b57\u7b26\u4e32\u4e0a.
if (flag) {
strbuf.append(c);
}
}
}
return strbuf;
}

public static void main(String args[]) throws Exception {
System.out.println("\u8bf7\u8f93\u5165\u4e00\u6bb5\u5b57\u7b26\u4e32,\u5e76\u4ee5\u56de\u8f66\u7ed3\u675f");
BufferedReader buf = new BufferedReader(
new InputStreamReader(System.in));
String str = buf.readLine();
StringBuffer strbuf = new NumberSplit().getString(str);
// \u5c06\u8fd4\u56de\u7684StringBuffer\u8f6c\u6362\u4e3a\u5b57\u7b26\u6570\u7ec4
char c[] = strbuf.deleteCharAt(0).toString().toCharArray();
// \u5bf9\u5b57\u7b26\u6570\u7ec4\u6392\u5e8f
Arrays.sort(c);
// \u8f93\u51fa\u5b57\u7b26\u6570\u7ec4
for (int i = 0; i < strbuf.length(); i++) {
System.out.print(c[i]);
}

}
}

解决方案:

  1. 使用正则表达式抽取数字子串;

  2. 使用Interger.parse将数字子串转为整数类型;

  3. 计算两个数字相乘即可;



// 字符串乘积
// 时间复杂度: O(m * n)
// 空间复杂度: O(m + n)
public String multiply(String num1, String num2) {

if(num1 == null || num2 == null
|| num1.length() == 0 || num2.length() == 0
|| num1.equals("0") || num2.equals("0")){
return "0";
}
int m = num1.length() - 1, n = num2.length() - 1;
int[] temp = new int[m + n + 2]; // 空间复杂度O(m + n)
for(int i = m; i >= 0; i-- ){ // 时间复杂度: O(m*n)
int x = num1.charAt(i) - '0';
for(int j = n; j >= 0; j--){
int y = num2.charAt(j) - '0';
temp[i + j + 1] += x*y;
}
}
for(int i = temp.length - 1; i > 0; i--){ //时间复杂度: O(n+m)
temp[i-1] += temp[i] / 10;
temp[i] = temp[i] % 10;
}
int index = temp[0] == 0 ? 1 : 0;
StringBuilder sb = new StringBuilder();// 空间复杂度 O(m + n)
for(int i = index; i < temp.length; i++){ // 时间复杂度 O(n + m)
sb.append(temp[i]);
}
return sb.toString();
}

正则表达式+BigDecimal

  • 鐢↗AVA缂栧啓涓绋嬪簭:浠庨敭鐩杈撳叆澶氫釜瀛楃涓鍒扮▼搴忎腑,骞灏瀹冧滑鎸夐嗗簭杈撳嚭鍦...
    绛旓細浠g爜濡備笅锛歩mport java.util.Scanner;public class ScannerDemo{ public static void main(String[] args) throws Exception{ Scanner scan=new Scanner(System.in);System.out.println("璇杈撳叆鍐呭锛");String str=scan.nextLine();char[] s=str.toCharArray();for(int i=s.length-1;i>=0;i--...
  • 鐢╦ava缂栧啓杈撳叆涓涓瀛楃涓杈撳嚭鏈澶х浉鍚屽瓧绗︿覆
    绛旓細杩欑涓滆タ涓鎼滀竴澶у爢鍟 public class LCString3 {public static void getLCString(char[] str1, char[] str2) {int i, j;int len1, len2;len1 = str1.length;len2 = str2.length;int maxLen = len1 > len2 ? len1 : len2;int[] max = new int[maxLen];int[] maxIndex = ...
  • 鐢╦ava缂栫▼,浠庨敭鐩杈撳叆涓涓瀛楃涓a鍜宐,瑕佹眰涓嶇敤搴撳嚱鏁皊trcat鎶婁覆b鐨...
    绛旓細String a = "1234567";String b = "abcdefg";if (b.length() > 5) { a = a.concat(b.substring(0, 5));} else { a = a.concat(b);} 杈撳叆灏辩畻浜
  • Java涓浣瀹炵幇鐢ㄦ埛杈撳叆澶氫釜瀛楃涓插苟瀛樺偍鍦ㄥ瓧绗︿覆鏁扮粍涓?
    绛旓細int n = Integer.valueOf(input.nextLine().replaceAll("[^\\d]", ""));鏀规垚杩欐牱鍗冲彲;鍥犱负浣犵殑杈撳叆鍑芥暟,浣犱箣鍓嶈皟鐢ㄧ殑瀹僫nt绫诲瀷鏂规硶;鏀规垚杩欐牱,灏辩被浼间綘涓鐩寸敤鐨勯兘鏄瓧绗︿覆,鍖哄埆浣犵涓娆鐨勫瓧绗︿覆琚獻nteger瀵硅薄杞垚鏁板瓧浜;
  • 濡備綍鐢↗ava杈撳叆瀛楃涓?
    绛旓細鍙互浣跨敤 Java 涓鐨 Scanner 绫绘潵瀹氫箟涓涓敭鐩樻壂鎻忓璞★紝鎺ョ潃浣跨敤 next() 鏂规硶鏉ユ帴鏀剁敤鎴杈撳叆鐨勫瓧绗︿覆锛屽啀閫氳繃 Integer.parseInt() 鏂规硶灏嗗瓧绗︿覆杞崲涓烘暣鏁扮被鍨嬨備互涓嬫槸绀轰緥浠g爜锛氫笂杩扮▼搴忓畾涔変簡涓涓暱搴︿负 10 鐨勬暣鍨嬫暟缁 score 鏉ュ瓨鏀炬垚缁╂暟鎹紝浣跨敤 for 寰幆浠庨敭鐩樿緭鍏 10 鍚嶅鐢熺殑鎴愮哗鏁版嵁锛岀劧鍚庡啀...
  • java浠庨敭鐩杈撳叆涓涓瀛楃涓,鍒ゅ畾涓や釜瀛楃涓叉槸鍚︿负鏁板瓧,璁$畻涓や釜鏁板瓧鐨勭粨...
    绛旓細import java.util.Scanner;public class number2 {public static boolean isNum(String str){return str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");}public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("绗...
  • 鐢ㄦ埛杈撳叆涓涓瀛楃涓,妫楠岀涓涓槸鍚︿负绗浜涓殑瀛愪覆 鐢↗AVA缂栧啓
    绛旓細s1.indexof(s2)濡傛灉绗浜涓瓧绗︾獪鏄涓涓瀛楃涓鐨勫瓙涓插皢杩斿洖瀛涓插湪s1涓殑璧峰涓嬫爣锛屽鏋滀笉鏄皢杩斿洖-1
  • java杈撳叆涓涓瀛楃涓,鍦绗竴涓瓧绗︿覆涓垹鍘荤浜涓瓧绗︿覆涓湁鐨勫瓧绗渚嬪a...
    绛旓細package zhidao;import java.util.Scanner;public class claen{public static String fun1 ( String s, String b ){String ss = "";for ( int i = 0; i < s.length (); i++ ){for ( int j = 0; j < b.length (); j++ ){if (s.charAt (i) != b.charAt (j)){ss +=...
  • 鎬庝箞浣跨敤java缂栧啓杈撳叆瀛楃涓1鑰岃緭鍑瀛楃涓2?
    绛旓細import java.util.Scanner;public class F { public static void main(String[] args) { Scanner scan = new Scanner(System.in);System.out.println("璇杈撳叆瀛楃涓:");String name = scan.next();if("寮犱笁".equals(name)){ System.out.println(name+"鍦ㄧ涓鎺掔浜屼綅");}else if("鏉庡洓"...
  • 鐢↗AVA缂栧啓涓绋嬪簭:浠庨敭鐩杈撳叆澶氫釜瀛楃涓鍒扮▼搴忎腑,骞灏瀹冧滑鎸夐嗗簭杈撳嚭鍦...
    绛旓細import java.util.*;public class laji1 { public static void main(String[] args) { int n=100; Scanner scanner = new Scanner(System.in); System.out.print("璇杈撳叆瀛楃涓: "); String yy = scanner.nextLine(); StringTokenizer fenxi1 = new StringTokenizer(yy," "); String str[] = new...
  • 扩展阅读:java指令大全 ... java怎么从键盘上输入 ... java从键盘输入的方法 ... java怎么键盘输入数字 ... java中如何输入一个字符 ... jdk java安装后怎么使用 ... 如何在java中输出汉字 ... java输入keyboard ... java怎么输入后二次输入 ...

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