java解析字符串,java解析字符串正則

本文目錄一覽:

java解析字符串(解析sql語句,得到需要查詢顯示的字段名)。

我寫一條把

String aa=”select “+f_spbm+” from 表1″

主要注意其中的空格 select 後面的, from前面的空格。。

第二條一樣。。表不固定,字段也就不能固定,功能也就不能固定,一般編寫都會將表固定的。

java解析字符串

package com;

import java.util.HashMap;

import java.util.LinkedList;

import java.util.List;

import java.util.Map;

public class Yuma

{

private ListMap analysisConfig(String config)

{

String[] arr = config.split(“;”);

String reg = “([^\\(]+)(\\([^\\)]*\\))”;

ListMap list = new LinkedListMap();

for(int i = 0; i  arr.length; i++)

{

String tmp = arr[i];

MapString, String map = new HashMapString, String();

map.put(tmp.replaceAll(reg, “$1”), tmp.replaceAll(reg, “$2”));

list.add(map);

}

return list;

}

public static void main(String[] args)

{

String ruleConfig = “債券(0000,1200,1100);非標資產(0100);質押式回購(0123@質押式正回購,0123@質押式逆回購)”;

Yuma yuma = new Yuma();

ListMap list = yuma.analysisConfig(ruleConfig);

System.out.println(list);

}

}

java解析字符串 算術表達式求值

Java 有一個jar包 叫 groovy

groovy可以實現動態執行 String格式的算數表達式

public static void main(String[] args) throws Exception{

    String str1 = “1 + 2 * 3”; //表達式1  固定表達式

    GroovyShell groovyShell = new GroovyShell();

    Object value = groovyShell.evaluate(str1);

    System.out.println(value);

    String str2 = “A + B * C”; //表達式2 動態表達式

    Binding binding = new Binding();

    binding.setVariable(“A”,1); //表達式中 所有的A替換為1

    binding.setVariable(“B”,2);//表達式中 所有的B替換為2

    binding.setVariable(“C”,3);//表達式中 所有的C替換為3

    GroovyShell groovyShell2 = new GroovyShell(binding);

    Object value2 = groovyShell2.evaluate(str2); //str2 實際表達式為 1 + 2 * 3

    System.out.println(value2);

}

java 解析json字符串

你好:

後台拆分json

private String interactPrizeAll;    //json 使用字符串來接收

方法中的代碼:

Gson gson = new Gson();

InteractPrize interactPrize =new InteractPrize();

 //gson用泛型 轉List數組 多個對象

ListInteractPrize  interactPrizeList = gson.fromJson(interactPrizeAll, new TypeTokenListInteractPrize(){}.getType()); //TypeToken,它是gson提供的數據類型轉換器,可以支持各種數據集合類型轉換 

for(int i = 0; i  interactPrizeList.size(); i++)  

   {  

    interactPrize = interactPrizeList.get(i);//獲取每一個對象

    }

 這一種方法是轉單個對象時使用的

 //gson 轉對象 單個對象

//interactPrize = gson.fromJso(interactPrizeAll,InteractPrize.class);

這個方法是我後台拼的json往前台傳的方法

jsonStrAll.append(“{“+ “\””+”catid”+”\””+”:”+”\””+c.getCatid()+”\””+”,”+”\””+”catname”+”\””+”:”+”\””+c.getCatname()+”\””+”,”+ “\””+”catdesc”+”\””+”:”+”\””+c.getCatdesc()+”\””+”,”+”\””+”showinnav”+”\””+”:”+”\””+c.getShowinnav()+”\””+”,”+”\””+”sortorder”+”\””+”:”+”\””+c.getSortorder()+”\””+”,”+”level:”+”\””+”0″+”\””+”,parent:”+”\””+”0″+”\””+”,isLeaf:true,expanded:false,”+”loaded:true},”);

你自己挑着用吧!

java字符串如何解析成能運行的java代碼?

java字符串如何解析成運行的java代碼

有些情況下,不得不動態運行Java代碼,以便提供更加靈活的方式,以下代碼可參考(在JDK 1.5+平台上運行通過):

public static void main(String[] args) {

int i = 10;

String code = “System.out.println(\”Hello World!\”+(13+2*5/3));”;

code += “for(int i=0;i” + i + “;i++){“;

code += ” System.out.println(Math.pow(i,2));”;

code += “}”;

try {

run(code);

} catch (Exception e) {

e.printStackTrace();

}

}

private synchronized static File compile(String code) throws Exception {

File file = File.createTempFile(“JavaRuntime”, “.java”, new File(System.getProperty(“user.dir”)));

file.deleteOnExit();

// 獲得類名

String classname = getBaseFileName(file);

// 將代碼輸出到文件

PrintWriter out = new PrintWriter(new FileOutputStream(file));

out.println(getClassCode(code, classname));

out.close();

// 編譯生成的java文件

String[] cpargs = new String[] { “-d”,

System.getProperty(“user.dir”) + “\\WebRoot\\WEB-INF\\classes”,

file.getName() };

int status = Main.compile(cpargs);

if (status != 0) {

throw new Exception(“語法錯誤!”);

}

return file;

}

private static synchronized void run(String code) throws Exception {

String classname = getBaseFileName(compile(code));

new File(System.getProperty(“user.dir”)

+ “\\WebRoot\\WEB-INF\\classes\\” + classname + “.class”)

.deleteOnExit();

try {

Class cls = Class.forName(classname);

Method main = cls.getMethod(“method”, null);

main.invoke(cls, null);

} catch (Exception se) {

se.printStackTrace();

}

}

private static String getClassCode(String code, String className) {

StringBuffer text = new StringBuffer();

text.append(“public class ” + className + “{\n”);

text.append(” public static void method(){\n”);

text.append(” ” + code + “\n”);

text.append(” }\n”);

text.append(“}”);

return text.toString();

}

private static String getBaseFileName(File file) {

String fileName = file.getName();

int index = fileName.indexOf(“.”);

String result = “”;

if (index != -1) {

result = fileName.substring(0, index);

} else {

result = fileName;

}

return result;

}

java 拼接字符和解析字符串

import java.util.ArrayList;

import java.util.List;

/**

 * Created by Administrator on 2015/6/14.

 */

public class Test {

    private static ListString infor;

    static {

        infor = new ArrayListString();

        infor.add(“流水號1”);

        infor.add(“收款方帳號1”);

        infor.add(“真實姓名”);

        infor.add(“付款金額1”);

        infor.add(“備註說明1”);

        infor.add(“流水號2”);

        infor.add(“收款方帳號2”);

        infor.add(“真實姓名”);

        infor.add(“付款金額2”);

        infor.add(“備註說明2”);

    }

    public static void main(String args[]) {

        /**

         * 開始拼接字符串

         */

        String inforString = infor.get(0);

        for (int i = 1, k = infor.size(); i  k; i++) {

            if (i % 5 == 0) {

                inforString += “|”;

            } else {

                inforString += “^”;

            }

            inforString += infor.get(i);

        }

        System.out.println(“拼接後的字符串是:” + inforString);

        /**

         * 開始解釋字符串

         */

        String[] usersInfor = inforString.split(“\\|”);

        System.out.println(usersInfor.length);

        User user;

        String[] userString;

        for (int i = 0, k = usersInfor.length; i  k; i++) {

            userString = usersInfor[i].split(“\\^”);

            user = new User();

            user.setId(userString[0]);

            user.setGathering(userString[1]);

            user.setName(userString[2]);

            user.setPayment(userString[3]);

            user.setRemark(userString[4]);

            System.out.println(“User” + i + “=” + user);

        }

    }

    static class User {

        private String id;

        private String gathering;

        private String name;

        private String payment;

        private String remark;

        public User() {

        }

        public String getId() {

            return id;

        }

        public void setId(String id) {

            this.id = id;

        }

        public String getGathering() {

            return gathering;

        }

        public void setGathering(String gathering) {

            this.gathering = gathering;

        }

        public String getName() {

            return name;

        }

        public void setName(String name) {

            this.name = name;

        }

        public String getPayment() {

            return payment;

        }

        public void setPayment(String payment) {

            this.payment = payment;

        }

        public String getRemark() {

            return remark;

        }

        public void setRemark(String remark) {

            this.remark = remark;

        }

        @Override

        public String toString() {

            return “[id:” + id + “,gathering:” + gathering + “,name:” + name + “,payment:” + payment + “,remark:” + remark + “]”;

        }

    }

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/240725.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:23
下一篇 2024-12-12 12:23

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python中將字符串轉化為浮點數

    本文將介紹在Python中將字符串轉化為浮點數的常用方法。在介紹方法之前,我們先來思考一下這個問題應該如何解決。 一、eval函數 在Python中,最簡單、最常用的將字符串轉化為…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論