www.91084.com

GVKun编程网logo

String.replaceAll()无法正常工作(stringbuilder can be replaced)

21

如果您想了解String.replaceAll的相关知识,那么本文是一篇不可错过的文章,我们将对无法正常工作进行全面详尽的解释,并且为您提供关于c#–String.Replace不能正常工作、C++s

如果您想了解String.replaceAll的相关知识,那么本文是一篇不可错过的文章,我们将对无法正常工作进行全面详尽的解释,并且为您提供关于c# – String.Replace不能正常工作、C++ string split()和 replaceAll()、CountDownTimer cancel()无法正常工作、Heroku Flask .json()无法正常工作500错误的有价值的信息。

本文目录一览:

String.replaceAll()无法正常工作(stringbuilder can be replaced)

String.replaceAll()无法正常工作(stringbuilder can be replaced)

我正在编辑从tesseract ocr获得的一些电子邮件。

这是我的代码:

 if (email != null) {        email = email.replaceAll(" ", "");        email = email.replaceAll("caneer", "career");        email = email.replaceAll("canaer", "career");        email = email.replaceAll("canear", "career");        email = email.replaceAll("caraer", "career");        email = email.replaceAll("carear", "career");        email = email.replace("|", "l");        email = email.replaceAll("}", "j");        email = email.replaceAll("j3b", "job");        email = email.replaceAll("gmaii.com", "gmail.com");        email = email.replaceAll("hotmaii.com", "hotmail.com");        email = email.replaceAll(".c0m", ".com");        email = email.replaceAll(".coin", ".com");        email = email.replaceAll("consuit", "consult");    }    return email;

但是输出不正确。

输入:

amrut=ac.hrworks@g mai|.com

输出:

lalcl.lhlrlwlolrlklsl@lglmlalil|l.lclolml

但是,当我在每次替换后将结果分配给新的String时,它都能正常工作。为什么在同一字符串中连续分配不起作用?

答案1

小编典典

您将在Javadoc中的String.replaceAll()中注意到,第一个参数是正则表达式。

句点(.)和管道(|)以及花括号(})都有特殊的含义。您需要对它们全部进行转义,例如:

email = email.replaceAll("gmaii\\.com", "gmail.com");

c# – String.Replace不能正常工作

c# – String.Replace不能正常工作

这是非常奇怪的,因为我使用Replace功能数千次.这是我的代码:
while (d.IndexOf("--") != -1) d=d.Replace("--","-");

当我跟踪时,这是变量值:

"آدنیس,اسم دختر,girl name,آدونیس--‌-گلی-به-رنگ-زرد-و-قرمز-که-فقط-هنگام-تابش-خورشید-باز-می-شود"

但是当d的值为:

"آدنیس,آدونیس-‌-گلی-به-رنگ-زرد-و-قرمز-که-فقط-هنگام-تابش-خورشید-باز-می-شود"

有人可以告诉我为什么吗
有趣的是,即使是破折号也是以编程方式添加的.

解决方法

那是因为这个:
var d1 = "آدنیس,آدونیس--‌-گلی-به-رنگ-زرد-و-قرمز-که-فقط-هنگام-تابش-خورشید-باز-می-شود";

是不一样的:

var d2 = "آدنیس,آدونیس---گلی-به-رنگ-زرد-و-قرمز-که-فقط-هنگام-تابش-خورشید-باز-می-شود";

你的字符串中的最后三个字符实际上不是unicode – 自己尝试一下:

var d1 = "آدنیس,آدونیس--‌-گلی-به-رنگ-زرد-و-قرمز-که-فقط-هنگام-تابش-خورشید-باز-می-شود";
var d2 = "آدنیس,آدونیس---گلی-به-رنگ-زرد-و-قرمز-که-فقط-هنگام-تابش-خورشید-باز-می-شود";
while (d.IndexOf("--",StringComparison.Ordinal) != -1) d1 = d1.Replace("--","-");
Console.WriteLine(d1); // the last characters are left 
while (d2.IndexOf("--",StringComparison.Ordinal) != -1) d2 = d2.Replace("--","-");
Console.WriteLine(d2); // All clear

只是FYI:
字符串比较法指标是文化特定的.我会用:

var d = "آدنیس,آدونیس--‌-گلی-به-رنگ-زرد-و-قرمز-که-فقط-هنگام-تابش-خورشید-باز-می-شود";
while (d.IndexOf("--",System.StringComparison.Ordinal) != -1) 
      d = d.Replace("--","-");

因为它使用了顺序规则,即文化独立的unicode值,并且运行速度更快.

C++ string split()和 replaceAll()

C++ string split()和 replaceAll()

VS2008实现C++ string split()和 replaceAll()

#include "stdafx.h"
#include <iostream> 
#include <string> 
#include <vector> 


using namespace std; 


vector<string> mySplit(const string& str, string sp_string)  // split(), str 是要分割的string
{ 
    vector<string> vecString; 
    int sp_stringLen = sp_string.size(); 
    int lastPosition = 0; 
    int index = -1; 
    while(-1 != (index=str.find(sp_string , lastPosition))) 
    { 
        vecString.push_back(str.substr(lastPosition, index - lastPosition)); 
        lastPosition = index +sp_stringLen; 
    } 
    string lastStr = str.substr(lastPosition); 
    if ( !lastStr.empty() ) 
    { 
        vecString.push_back(lastStr); 
    } 
    return vecString; 
} 


string myReplaceAll(const string& str, string org_str, string rep_str) // 把org_str 替换为rep_str; 
{ 
    vector<string>  delimVec = mySplit(str, org_str); 
    if (delimVec.size() <= 0) 
    { 
        cout<<"can not find"<<endl; 
        return str; 
    } 
    string target(""); 
    vector<string>::iterator it = delimVec.begin(); 
    for (; it != delimVec.end(); ++it) 
    { 
        target = target + (*it)+ rep_str; 
    } 
//target = target +(*it); 
    return target; 
    } 

// 把org_strVec中的string全部替换为rep_str; 
string myReplaceAll(const string& str, vector<string>& org_strVec, string rep_str)
{ 
    vector<string>::iterator org_it = org_strVec.begin(); 
    string org_str(""); 
    string target = str; 
    string strTarget = str; 
    for (; org_it != org_strVec.end(); ++org_it) 
    { 
        org_str = *org_it; 
        vector<string> delimVec = mySplit(strTarget, org_str); 
        target = ""; 
        if (delimVec.size() > 0) 
        { 
            vector<string>::iterator it = delimVec.begin(); 
            for (;it != delimVec.end(); ++it) 
            { 
                target = target + (*it) +rep_str; 
            } 
            strTarget = target; 
        } 
    } 
    return strTarget; 
} 




int _tmain(int argc, _TCHAR* argv[]) 
{ 
    string str = "ewrsdrtwrtsdfsdsdfrtfgsdfertgdffgertsdfsd"; 
    string splitStr = "sd"; 
    string replaceStr1 = "mmmm"; 
    string replaceStr2 = "xxxx"; 
    vector<string> strVec1 = mySplit(str, splitStr); 
    for (vector<string>::iterator it = strVec1.begin(); it != strVec1.end(); ++it) 
    { 
        cout<< "!!!  "<<*it<<endl; 
    } 
    string strX[] = {"wr","rt"}; 
    vector<string> strVec2 (strX, strX + sizeof(strX)/sizeof(strX[0])); 

    cout << strVec2[0]<<"13q3224"<<strVec2[1]<<endl; 
    str = myReplaceAll(str,splitStr,replaceStr1); 
    str = myReplaceAll(str,strVec2,replaceStr2); 
    cout << str <<"~~~~~"<<endl; 
    return 0; 
}


CountDownTimer cancel()无法正常工作

CountDownTimer cancel()无法正常工作

我是Android开发的新手,正在尝试制作小游戏。 CountDownTimer.cancel()对我不起作用。

任何想法?

感谢您的回答!

CountDownTimer cdt = new CountDownTimer(120000,1000) {

            public void onTick(long millisUntilFinished) {
                maxTime = (int) (millisUntilFinished / 1000);
                timer.setText(String.valueOf(maxTime));
            }

            public void onFinish() {

            }
        };

        if (startTimer == true) {
            cdt.start();
        } else {
            cdt.cancel();
        }

Heroku Flask .json()无法正常工作500错误

Heroku Flask .json()无法正常工作500错误

如何解决Heroku Flask .json()无法正常工作500错误?

我在stackoverflow上至少搜索了20次此问题。这是我的代码:

from flask import Flask,render_template,request,jsonify
import requests

@app.route("/test")
def test():
    agent = {"User-Agent":''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/78.0.3904.87 Safari/537.36''}
    url = ''https://www.nseindia.com/api/quote-equity''
    params = dict()
    params["symbol"] = ''ESCORTS''

    req = requests.get(url,params=params,headers=agent)
    data = req.json()
    return data

Heroku日志:

2020-09-14T15:38:41.158156+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/test" host=insider-india.herokuapp.com request_id=07d0c887-62f4-4046-a042-add6bee716bf fwd="182.64.176.133" dyno=web.1 connect=1ms service=30002ms status=503 bytes=0 protocol=http

如果我改而将data=req.json()return req注释掉,那就可以了。为什么heroku不支持requests.json()?如果可以的话,如何使其起作用?

一切都与localhost(在我的机器上)完全正常,这似乎是Heroku问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

今天关于String.replaceAll无法正常工作的分享就到这里,希望大家有所收获,若想了解更多关于c# – String.Replace不能正常工作、C++ string split()和 replaceAll()、CountDownTimer cancel()无法正常工作、Heroku Flask .json()无法正常工作500错误等相关知识,可以在本站进行查询。

本文标签: