批处理 大小写转换

@ECHO OFF
SET "UP=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"
SET "DOWN=a b c d e f g h i j k l m n o p q r s t u v w x y z"

SET STR="falfFDFvlSDF.SDFckGmsSDFz;lJf ehmKsd"
::需要引号包含否则无法传入空格分号
ECHO 原始字符串: %STR%

CHOICE /N /C UD /M "转换大写 U, 转换小写 D:"

	IF ERRORLEVEL 2 ( CALL :DOWNCASE %STR% RESULT ) ELSE (
		IF ERRORLEVEL 1 CALL :UPCASE %STR% RESULT
	)


ECHO 转换后字符串: %RESULT%
PAUSE
GOTO :EOF

:UPCASE
ECHO UPCASE
SETLOCAL ENABLEDELAYEDEXPANSION
SET $=&SET "#=%~1"
ECHO %#%
IF DEFINED # (
	FOR %%A IN (%UP%) DO SET #=!#:%%A=%%A!
)
ENDLOCAL&SET "%~2=%#%"&EXIT/B

:DOWNCASE
ECHO DOWNCASE
SETLOCAL ENABLEDELAYEDEXPANSION
SET $=&SET "#=%~1"
IF DEFINED # (
	FOR %%A IN (%DOWN%) DO SET #=!#:%%A=%%A!
)
ENDLOCAL&SET "%~2=%#%"&EXIT/B

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来回答你的问题。 首先,我们需要导入Apache Flink的相关依赖: ```xml <dependencies> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-core</artifactId> <version>1.11.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.11.2</version> </dependency> </dependencies> ``` 然后,我们可以使用如下代码实现批流融合的词频统计: ```java import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.api.java.ExecutionEnvironment; import org.apache.flink.api.java.utils.ParameterTool; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.streaming.api.functions.source.SocketTextStreamFunction; import org.apache.flink.util.Collector; public class BatchStreamWordCount { public static void main(String[] args) throws Exception { final ParameterTool params = ParameterTool.fromArgs(args); // 设置执行环境 final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); final StreamExecutionEnvironment streamEnv = StreamExecutionEnvironment.getExecutionEnvironment(); // 读取文件数据源 DataStream<String> fileData = env.readTextFile(params.get("input")); // 读取socket数据源 DataStream<String> socketData = streamEnv.addSource(new SocketTextStreamFunction(params.get("hostname"), params.getInt("port"), "\n", 3)); // 将两个数据源合并 DataStream<String> data = fileData.union(socketData); // 进行词频统计 data.flatMap(new FlatMapFunction<String, WordCount>() { @Override public void flatMap(String value, Collector<WordCount> out) throws Exception { String[] words = value.toLowerCase().split("\\W+"); for (String word : words) { if (word.length() > 0) { out.collect(new WordCount(word, 1)); } } } }) .keyBy("word") .sum("count") .print(); env.execute("BatchStreamWordCount"); } public static class WordCount { public String word; public int count; public WordCount() {} public WordCount(String word, int count) { this.word = word; this.count = count; } @Override public String toString() { return word + ": " + count; } } } ``` 在上述代码中,我们先分别读取文件和socket数据源,然后使用union函数将它们合并为一个数据流。接着,我们使用flatMap函数将每一行数据转换为单词及其个数的二元组,并使用keyBy和sum函数进行词频统计。最后,我们使用print函数将结果输出到控制台。 需要注意的是,我们使用toLowerCase函数将单词转换小写,以便进行不区分大小写的词频统计。 希望我的回答能够帮到你。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值